CommencerCommencer gratuitement

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

Afficher le cours

Instructions

  • Faites lever une exception par l’objet mock de la banque lorsque getRateEuroTo est appelé.
  • Créez exactement l’objet exception que vous souhaitez simuler.
  • Vérifiez que la méthode convertEuroTo ne lève pas d’exception mais retourne -1 dans 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
		____(____, ____);
    }
}
Modifier et exécuter le code