Test jednostkowy: wyjątki przy wymianie walut
Jednym z możliwych scenariuszy błędu w aplikacji do wymiany walut jest niedostępność serwera bankowego – na przykład z powodu awarii lub problemów z siecią. Aby zabezpieczyć się przed niepożądanymi wyjątkami, w metodzie convertEuroTo zastosowano blok try/catch.
Zasymuluj ten scenariusz błędu, sprawiając, że mockowy obiekt EuropeanCentralBankServer rzuci wyjątek w momencie żądania kursu wymiany.
To ćwiczenie jest częścią kursu
Wprowadzenie do testowania w Javie
Instrukcje do ćwiczenia
- Skonfiguruj mockowy obiekt banku tak, aby rzucał wyjątek przy wywołaniu
getRateEuroTo. - Utwórz konkretny obiekt wyjątku, który chcesz zasymulować.
- Sprawdź, czy metoda
convertEuroTonie rzuca wyjątku, lecz zwraca-1w tym scenariuszu.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
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
____(____, ____);
}
}