我有WidgetProcessor
一个依赖于另一个类的类,FizzChecker
:
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()
第一次调用它时返回 false (因此循环永远不会执行)fizzChecker.hasMoreBuzz()
第 5 次调用时返回 false
我正在尝试弄清楚如何使用 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
提前致谢。