В моем функциональном тесте я не хочу имитировать объект LOGGER, но хочу проверить его в ошибочных сценариях.Ниже приведены несколько строк кода:
private static final Logger LOGGER_OF_ANOTHER_CLASS = Logger.getLogger(DataProvider.class);
@Before public void setup() { Mockito.spy(LOGGER_OF_ANOTHER_CLASS); }
@Test public void testWarningIsLoggedWhenNoDataExists() {
whenInvalidCriteriaIsPassed(); // This is private method
Mockito.verify(LOGGER_OF_ANOTHER_CLASS, times(1)).warn(new ArgumentMatcher<String>() {
@Override
public boolean matches(Object argument) {
String message = (String) argument;
return message.startsWith("Unable to fetch data for criteria:");
}
});
}
На этом я получаю исключение
org.mockito.exceptions.misusing.NotAMockException:
Argument passed to verify() is not a mock!
Examples of correct verifications:
verify(mock).someMethod();
verify(mock, times(10)).someMethod();
verify(mock, atLeastOnce()).someMethod();
Я пробовал несколько сценариев поиска в StackOverflow, но не смог.