我想使用Mockito测试下面的(简化)代码。我不知道如何告诉Mockito第一次失败,然后第二次成功。
for(int i = 1; i < 3; i++) {
String ret = myMock.doTheCall();
if("Success".equals(ret)) {
log.write("success");
} else if ( i < 3 ) {
log.write("failed, but I'll try again. attempt: " + i);
} else {
throw new FailedThreeTimesException();
}
}
我可以通过以下方式设置成功测试:
Mockito.when(myMock).doTheCall().thenReturn("Success");
以及失败测试:
Mockito.when(myMock).doTheCall().thenReturn("you failed");
但是,如何测试一次失败(或两次失败)然后成功,就可以了吗?
doThrow(new RuntimeException()).doNothing().when(myMock).doTheCall();