Tôi muốn sử dụng Mockito để kiểm tra mã (đơn giản hóa) bên dưới. Tôi không biết làm thế nào để nói Mockito thất bại lần đầu tiên, sau đó thành công lần thứ hai.
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();
}
}
Tôi có thể thiết lập kiểm tra thành công với:
Mockito.when(myMock).doTheCall().thenReturn("Success");
Và thử nghiệm thất bại với:
Mockito.when(myMock).doTheCall().thenReturn("you failed");
Nhưng làm thế nào tôi có thể kiểm tra nếu nó thất bại một (hoặc hai lần) sau đó thành công, nó ổn?
doThrow(new RuntimeException()).doNothing().when(myMock).doTheCall();