Comece agoraComece grátis

Teste de unidade: Exceções em câmbio

Um possível cenário de erro para o app de câmbio é o servidor do banco ficar indisponível devido a uma queda ou a problemas de rede. Para se proteger de exceções que interrompem o fluxo, você colocou um bloco try/catch dentro do método convertEuroTo.

Simule esse cenário de erro fazendo o objeto mock EuropeanCentralBankServer lançar uma exceção quando uma taxa for solicitada.

Este exercicio faz parte do curso

Introdução a Testes em Java

Ver curso

Instruções do exercicio

  • Faça o objeto mock do banco lançar uma exceção quando getRateEuroTo for chamado.
  • Crie exatamente o objeto de exceção que você quer simular.
  • Verifique que o método convertEuroTo não lança exceção, mas retorna -1 nesse cenário.

exercicio interativo prático

Tente este exercicio completando este código de exemplo.

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 e Executar Código