Mockito を使用して、以下の (簡略化された) コードをテストしたいと考えています。Mockito に 1 回目は失敗し、2 回目は成功するように指示する方法がわかりません。
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");
しかし、1 回 (または 2 回) 失敗してから成功した場合、問題ないことをどのようにテストできますか?