Я делаю модульное тестирование в своем проекте.
Я написал тестовый скрипт для тестирования класса с помощью шпиона, и я издеваюсь над методом с "Mockito.doReturn".Но, похоже, не работает над тем методом, который я высмеял.
В моем тестовом примере я высмеиваю syncLogs () и устанавливаю возвращаемое значение равным «false». Поэтому «syncLogs ()» не должно выполняться, а возвращаемое значение должно быть «false».
На самом деле, syncLogs (), который я по-прежнему смоделировал, был выполнен, и возвращаемое значение равно "true".Я не знаю, почему макет не работает в моем тесте.
Кто-нибудь имеет какие-либо идеи или сталкивался с этой проблемой?
class ApplicationTest{
public void testCase2() {
setArgs(new String[] {"2018-04-23 00:08:00", "2018-04-23 00:10:00", "" });
String startTime = "2018-04-23 00:08:00";
String endTime = "2018-04-23 00:10:00";
StringBuilder message = new StringBuilder();
ApplicationCmdLine spy = Mockito.spy(ApplicationCmdLine.class);
Mockito.doReturn(false).when(spy).syncLogs(startTime, endTime, message);
TestCase.assertEquals(true, spy.manualSyncProess(getArgs()));
}
}
class ApplicationCmdLine {
public boolean manualSyncProess(String[] args){...
String information;
if(!syncLog(.....))
printUsageMessage(information);
}
public void printUsageMessage(StringBuilder message){
System.out.println(message);
}
public boolean syncLogs(String startTime, String endTime, StringBuilder message) {....}
}
Спасибо за вашу помощь:)