Saya ingin menggunakan Mockito untuk menguji kode (yang disederhanakan) di bawah ini. Saya tidak tahu bagaimana memberi tahu Mockito untuk gagal pertama kali, lalu berhasil untuk kedua kalinya.
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();
}
}
Saya dapat menyiapkan tes sukses dengan:
Mockito.when(myMock).doTheCall().thenReturn("Success");
Dan uji kegagalan dengan:
Mockito.when(myMock).doTheCall().thenReturn("you failed");
Tapi bagaimana saya bisa menguji bahwa jika gagal sekali (atau dua kali) lalu berhasil, tidak masalah?
doThrow(new RuntimeException()).doNothing().when(myMock).doTheCall();