LoslegenKostenlos loslegen

Unittest: Ausnahmen im Devisenhandel

Ein mögliches Fehlerszenario für die Wechselkurs-App ist, dass der Bankserver wegen einer Störung oder Netzwerkproblemen nicht erreichbar ist. Um störende Ausnahmen zu vermeiden, hast du innerhalb der Methode convertEuroTo einen try/catch-Block eingebaut.

Simuliere das Fehlerszenario, indem du das Mock-Objekt EuropeanCentralBankServer beim Anfragen eines Kurses eine Exception werfen lässt.

Diese Übung ist Teil des Kurses

Einführung in das Testen in Java

Kurs anzeigen

Anleitung zur Übung

  • Lass das Mock-Bankobjekt eine Exception werfen, wenn getRateEuroTo aufgerufen wird.
  • Erzeuge genau das Exception-Objekt, das du simulieren möchtest.
  • Überprüfe, dass die Methode convertEuroTo keine Exception wirft, sondern in diesem Szenario -1 zurückgibt.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

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
		____(____, ____);
    }
}
Code bearbeiten und ausführen