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();