Aan de slagGa gratis aan de slag

Unittest: valutawissel-uitzonderingen

Een mogelijk foutscenario voor de wisselapp is dat de bankserver niet beschikbaar is door een storing of netwerkproblemen. Om verstorende uitzonderingen te voorkomen, heb je een try/catch ingebouwd in de methode convertEuroTo.

Simuleer het foutscenario door het mockobject EuropeanCentralBankServer een uitzondering te laten gooien wanneer een koers wordt opgevraagd.

Deze oefening maakt deel uit van de cursus

Introductie tot testen in Java

Cursus bekijken

Oefeninstructies

  • Laat het mock-bankobject een uitzondering gooien wanneer getRateEuroTo wordt aangeroepen.
  • Maak precies het uitzonderingobject dat je wilt simuleren.
  • Controleer dat de methode convertEuroTo geen uitzondering gooit maar -1 retourneert in dit scenario.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

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 bewerken en uitvoeren