Je souhaite utiliser Mockito pour tester le code (simplifié) ci-dessous. Je ne sais pas comment dire à Mockito d'échouer la première fois, puis de réussir la deuxième fois.
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();
}
}
Je peux configurer le test de réussite avec:
Mockito.when(myMock).doTheCall().thenReturn("Success");
Et le test d'échec avec:
Mockito.when(myMock).doTheCall().thenReturn("you failed");
Mais comment puis-je tester que si cela échoue une (ou deux fois) puis réussit, tout va bien?
doThrow(new RuntimeException()).doNothing().when(myMock).doTheCall();