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ě
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
convertEuroTový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
____(____, ____);
}
}