Inizia subitoInizia gratis

Unit test: Messaggio del database

Considera ErrorStore e InfoStore della lezione. Supponi che il metodo process(String message) venga usato su un messaggio [WARN], il che significa che non finirebbe in nessuno dei due database. Scrivi un test per verificarlo.

Questo esercizio fa parte del corso

Introduzione al Testing in Java

Visualizza corso

Istruzioni dell'esercizio

  • Verifica che il messaggio non sia finito in infoStore.
  • Verifica anche che non sia finito in errorStore usando l’approccio di verifica con times().
  • Nella stessa istruzione, aggiungi il metodo del database, save(), che non è stato chiamato.

esercizio interattivo pratico

Prova questo esercizio completando questo codice di esempio.

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);
    }
}
Modifica ed esegui il codice