#java #junit #mockito #matcher #hamcrest
#java #junit #mockito #сопоставитель #hamcrest
Вопрос:
Я занят написанием теста Junit с помощью Mockito.
Теперь я хочу проверить что-то вроде этого:
verify(event).fire(
new DefaultMonitoringEventImpl(
any(Class.class), any(MonitorEventType.class), MonitorEventLevel.ALL, anyString()
)
);
Меня волнует только третий параметр.
когда я пытаюсь это сделать, я получаю: исключение InvalidUseOfMatchersException.
Что бы я ни пробовал, это не исправит эту проблему. Связанные темы не дадут удовлетворительного решения.
-Bgvv1983
Ответ №1:
Используйте ArgumentCaptor:
ArgumentCaptor<DefaultMonitoringEventImpl> captor = ArgumentCaptor.forClass(DefaultMonitoringEventImpl.class);
Mockito.verify(event).fire(captor.capture());
DefaultMonitoringEventImpl actual = captor.getValue();
Assert.assertEquals(MonitorEventLevel.ALL, actual.getMonitorEventLevel());
Комментарии:
1. Спасибо, глупый, я об этом не подумал. Однако одно небольшое замечание по вашему решению. Mockito.verify(событие).fire (captor); должно быть: Mockito.verify(событие).fire(captor.capture());