ComenzarEmpieza gratis

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

Ver curso

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 convertEuroTo no lance una excepción, sino que devuelva -1 en 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
		____(____, ____);
    }
}
Editar y ejecutar código