У меня есть класс, для которого я пишу тест JUnit. Я пытаюсь проверить, не вызывается ли конкретный метод.
public class CountryProcess extends AbstractCountryProcess {
private static final Logger log = LoggerFactory.getLogger(CountryProcessor.class);
private static final Long MAX_FILE = 20l;
@Override
protected boolean processCountry(Region region, City city) {
Long maxFile = region.getRequiredLongValue(SIZE);
if (maxFile < MAX_FILE) {
cntDao.addCountryLandMark(city);
}
else {
log.warn("File size was big");
}
return true;
}
А тестовый класс:
public class CountryProcessTest {
@Rule
public final JUnitRuleMockery context = new JUnitRuleMockery();
private final CntDao cntDao = context.mock(CntDao.class);
@Before
public void setup() {
Injector injector = Guice.createInjector(new AbstractModule() {
@Override
protected void configure() {
bind(cntDao.class).toInstance(cntDao);
}
});
}
@Test
public void shouldIgnoreIfFileSizeBiggerThanPermitted() {
//some code to make it trigger ELSE statement above...
verify(cntDao, never()).addCountryLandMark(anyString());
}
}
Но это возвращает следующую ошибку:
org.mockito.exceptions.misusing.NotAMockException:
Аргумент переданный в verify () имеет тип $ Proxy4 и не является ложным!
Убедитесь, что вы поставили круглые скобки правильно!
См. Примеры правильных проверок:
проверить (фиктивный) .someMethod ();
verify (mock, times (10)). SomeMethod ();
verify (mock, atLeastOnce ()). SomeMethod ();
Любая идея, как я могу это исправить в текущем контексте. Пожалуйста, приведите пример с использованием текущего кода, чтобы я получил лучшую идею?