Prueba unitaria: Excepciones en el cambio de divisas
Un posible escenario de error para la app de cambio es que el servidor del banco no esté disponible por una caída o problemas de red. Para evitar excepciones disruptivas, has añadido un bloque try/catch dentro del método convertEuroTo.
Simula el escenario de error haciendo que el objeto mock EuropeanCentralBankServer lance una excepción cuando se solicite un tipo de cambio.
Este ejercicio forma parte del curso
Introducción a las pruebas en Java
Instrucciones del ejercicio
- Haz que el objeto mock del banco lance una excepción cuando se llame a
getRateEuroTo. - Crea el objeto de excepción exacto que quieras simular.
- Verifica que el método
convertEuroTono lance una excepción, sino que devuelva-1en este escenario.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
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
____(____, ____);
}
}