ฉันต้องการใช้ 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();