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
Instruções do exercicio
- Faça o objeto mock do banco lançar uma exceção quando
getRateEuroTofor chamado. - Crie exatamente o objeto de exceção que você quer simular.
- Verifique que o método
convertEuroTonão lança exceção, mas retorna-1nesse 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
____(____, ____);
}
}