Prueba unitaria: Mensaje de base de datos
Ten en cuenta ErrorStore e InfoStore de la lección. Supón que se usa el método process(String message) con un mensaje [WARN], lo que significa que no debería acabar en ninguna de las dos bases de datos. Escribe una prueba para verificarlo.
Este ejercicio forma parte del curso
Introducción a las pruebas en Java
Instrucciones del ejercicio
- Verifica que el mensaje no haya acabado en
infoStore. - Verifica también que no haya acabado en
errorStoreusando el enfoque de verificación contimes(). - En esa misma sentencia, añade el método de base de datos,
save(), que no fue llamado.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
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);
}
}