Test unitaire : exceptions de change de devises
Un scénario d’erreur possible pour l’application de change est l’indisponibilité du serveur bancaire en raison d’une panne ou de problèmes réseau. Pour éviter des exceptions perturbatrices, vous avez ajouté un bloc try/catch dans la méthode convertEuroTo.
Simulez ce scénario d’erreur en faisant lever une exception par l’objet mock EuropeanCentralBankServer lorsqu’un taux est demandé.
Cet exercice fait partie du cours
Introduction aux tests en Java
Instructions
- Faites lever une exception par l’objet mock de la banque lorsque
getRateEuroToest appelé. - Créez exactement l’objet exception que vous souhaitez simuler.
- Vérifiez que la méthode
convertEuroTone lève pas d’exception mais retourne-1dans ce scénario.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
class Main {
public static void main(String[] args) {
launchMockitoTestsAndPrint(ExchangeAppTest.class);
}
}
class ExchangeAppTest {
@Test
void convertEuroTo_throwsException_whenBankUnavailable() {
EuropeanCentralBankServer bank = mock(EuropeanCentralBankServer.class);
ExchangeApp exchangeApp = new ExchangeApp(bank);
double euroAmount = 450;
// Stub the mock to throw an exception
when(exchangeApp.convertEuroTo("TST", 100)).____(new ____("Bank server is unavailable."));
double tstAmount = exchangeApp.convertEuroTo("TST", euroAmount);
// Assert on the return value of the method
____(____, ____);
}
}