У меня есть класс WidgetProcessor
что имеет зависимость от другого класса, FizzChecker
:Переменный выход Mockito издевается
public class FizzChecker {
public boolean hasMoreBuzz() {
// Sometimes returns true, sometimes returns false.
}
}
Этот hasMoreBuzz()
метод вызывается внутри WidgetProcessor
как так:
public class WidgetProcessor {
public int process() {
while(fizzChecker.hasMoreBuzz()) {
// ... process stuff in here
}
}
}
Я хочу написать тестовые примеры, когда:
fizzChecker.hasMoreBuzz()
возвращает ложь первый раз, когда он называется (отсюда петля никогда не выполняет)fizzChecker.hasMoreBuzz()
возвращает ложные на 5-й раз он называется
Я пытаюсь выяснить, как сделать это с Mockito. Пока что моя лучшая (страшная) попытка:
WidgetProcessor fixture = new WidgetProcessor();
FizzChecker mockFizzChecker = Mockito.mock(FizzChecker.class);
// This works great for the first test case, but what about the 2nd
// where I need it to return: true, true, true, true, false?
Mockito.when(mockFizzChecker).hasMoreBuzz().thenReturn(false);
fixture.setFizzChecker(mockFizzCheck);
fixture.process();
// Assert omitted for brevity
Заранее спасибо.