ComenzarEmpieza gratis

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

Ver curso

Instrucciones del ejercicio

  • Verifica que el mensaje no haya acabado en infoStore.
  • Verifica también que no haya acabado en errorStore usando el enfoque de verificación con times().
  • 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);
    }
}
Editar y ejecutar código