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
Instruções do exercicio
- Verifique que a mensagem não foi parar em
infoStore. - Verifique também que ela não foi parar em
errorStoreusando a abordagem de verificação comtimes(). - 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);
}
}