Олы,Mockito Неправильное использование matchers Мок (Object.class) и anyString()
Я занят написанием модульное тестирование, как
monitor.severe(mock(MonitorEventType.class), anyString());
Когда я выполняю это я получаю:
Invalid use of argument matchers.
0 matchers expected, 1 recorded.
Так что я пробовал:
monitor.severe(mock(MonitorEventType.class), eq(anyString()));
Но т его дал
Invalid use of argument matchers.
0 matchers expected, 2 recorded.
Я также попытался использовать
monitor.severe(any(MonitorEventType.class), anyString());
, но это дает нулевой указатель.
Что работает,
monitor.severe(mock(MonitorEventType.class), "");
Но это еще не то, что я хочу.
Мои TestMethod является:
@Test
public void testSevere() {
monitor.severe(mock(MonitorEventType.class), eq(anyString()));
ArgumentCaptor<DefaultMonitoringEventImpl> captor = ArgumentCaptor.forClass(DefaultMonitoringEventImpl.class);
verify(event).fire(captor.capture());
DefaultMonitoringEventImpl input = captor.getValue();
assertThat(fetchMonitorLevel(input), equalTo(MonitorEventLevel.SEVERE.getDescription()));
}
private String fetchMonitorLevel(DefaultMonitoringEventImpl input) {
Map<String, String> map = input.getMonitorEventWaardes().getWaardenLijst();
return map.get(MonitorEvent.MONITOR_EVENT_LEVEL_KEY);
}
И метод тестируемый:
public void severe(MonitorEventType type, String message) {
write(type, MonitorEventLevel.SEVERE, message, null);
}
@Asynchronous
public void write(MonitorEventType type, MonitorEventLevel level, String message, MonitorEventWaardes pEventWaardes) {
event.fire(new DefaultMonitoringEventImpl(type, level, message, pEventWaardes));
}
То, что я хочу, что когда я называю monitor.severe со случайным MonitorEventType и случайной строки, которую параметр «level» в событии event.fire заполняется правильным значением.
Какова цель? Что вы хотите проверить? –
показать метод 'severe' –
@NicolasFilotto метод тяжелых выглядят как общественного ничтожного тяжелого (тип MonitorEventType, строка сообщение) { \t \t запись (тип, MonitorEventLevel.SEVERE, сообщение, NULL); \t} здесь это полная проверку общественных недействительный testSevere() { \t \t monitor.severe (макет (MonitorEventType.class), э (anyString())); \t \t ArgumentCaptor captor = ArgumentCaptor.forClass (DefaultMonitoringEventImpl.class); \t \t проверка (событие) .fire (captor.capture()); \t \t DefaultMonitoringEventImpl input = captor.getValue(); \t \t assertThat (fetchMonitorLevel (input), equalTo (MonitorEventLevel.SEVERE.getDescription())); \t} –
Bgvv1983