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
Anleitung zur Übung
- Lass das Mock-Bankobjekt eine Exception werfen, wenn
getRateEuroToaufgerufen wird. - Erzeuge genau das Exception-Objekt, das du simulieren möchtest.
- Überprüfe, dass die Methode
convertEuroTokeine Exception wirft, sondern in diesem Szenario-1zurü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
____(____, ____);
}
}