Как издеваться над частичными методами с помощью Spy - PullRequest
0 голосов
/ 18 мая 2018

Я делаю модульное тестирование в своем проекте.

Я написал тестовый скрипт для тестирования класса с помощью шпиона, и я издеваюсь над методом с "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) {....}

}

Спасибо за вашу помощь:)

...