Zacznij terazZacznij za darmo

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

Zobacz kurs

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 convertEuroTo nie rzuca wyjątku, lecz zwraca -1 w 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
		____(____, ____);
    }
}
Edytuj i uruchom kod