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
Oefeninstructies
- Laat het mock-bankobject een uitzondering gooien wanneer
getRateEuroTowordt aangeroepen. - Maak precies het uitzonderingobject dat je wilt simuleren.
- Controleer dat de methode
convertEuroTogeen uitzondering gooit maar-1retourneert 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
____(____, ____);
}
}