Test unitar: Excepții la schimbul valutar
Un posibil scenariu de eroare pentru aplicația de schimb valutar este indisponibilitatea serverului băncii din cauza unei întreruperi sau a unor probleme de rețea. Pentru a preveni excepțiile nedorite, ai implementat un bloc try/catch în metoda convertEuroTo.
Simulează scenariul de eroare făcând obiectul mock EuropeanCentralBankServer să arunce o excepție atunci când este solicitată o rată de schimb.
Acest exercițiu face parte din cursul
Introducere în testarea în Java
Instrucțiuni pentru exercițiu
- Fă ca obiectul mock al băncii să arunce o excepție atunci când este apelat
getRateEuroTo. - Creează obiectul exact de tip excepție pe care vrei să îl simulezi.
- Verifică că metoda
convertEuroTonu aruncă o excepție, ci returnează-1în acest scenariu.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
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
____(____, ____);
}
}