Comece agoraComece grátis

Teste de unidade: Mensagem no banco de dados

Considere o ErrorStore e o InfoStore da lição. Suponha que o método process(String message) seja usado em uma mensagem [WARN], o que significa que ela não iria para nenhum dos bancos de dados. Escreva um teste para verificar isso.

Este exercicio faz parte do curso

Introdução a Testes em Java

Ver curso

Instruções do exercicio

  • Verifique que a mensagem não foi parar em infoStore.
  • Verifique também que ela não foi parar em errorStore usando a abordagem de verificação com times().
  • Na mesma asserção, adicione o método do banco de dados, save(), que não foi chamado.

exercicio interativo prático

Tente este exercicio completando este código de exemplo.

public class Main {
    public static void main(String[] args) {
        launchMockitoTestsAndPrint(MessageProcessorTest.class);
    }
}

class MessageProcessorTest {

    @Test
    void process_savesNowhere_whenWrongMessageType() {
        InfoStore infoStore = mock(InfoStore.class);
        ErrorStore errorStore = mock(ErrorStore.class);
        MessageProcessor processor = new MessageProcessor(infoStore, errorStore);
        String message = "[WARN] The search is slow.";

        processor.process(message);

        // Verify infoStore was not called
        ____(infoStore);
        // Verify errorStore.save was called 0 times
        verify(errorStore, ____(0)).____(message);
    }
}
Editar e Executar Código