Začněte nyníZačněte zdarma

Jednotkový test: výjimky při směně měn

Jedním z možných chybových scénářů směnárenské aplikace je nedostupnost bankovního serveru způsobená výpadkem nebo problémy se sítí. Aby aplikace takové situace zvládala bez pádu, je v metodě convertEuroTo implementován blok try/catch.

Nasimuluj chybový scénář tak, že mock objekt EuropeanCentralBankServer vyhodí výjimku při dotazu na kurz.

Toto cvičení je součástí kurzu

Úvod do testování v Javě

Zobrazit kurz

Pokyny k cvičení

  • Zajisti, aby mock objekt banky vyhodil výjimku při volání metody getRateEuroTo.
  • Vytvoř konkrétní objekt výjimky, kterou chceš nasimulovat.
  • Ověř, že metoda convertEuroTo výjimku nevyhodí, ale v tomto scénáři vrátí hodnotu -1.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

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
		____(____, ____);
    }
}
Upravit a spustit kód