Kom igångKom igång gratis

Enhetstest: Databasmeddelande

Tänk på ErrorStore och InfoStore från lektionen. Anta att metoden process(String message) används på ett [WARN]-meddelande, vilket innebär att det inte hamnar i någon av databaserna. Skriv ett test som verifierar detta.

Den här övningen är en del av kursen

Introduktion till testning i Java

Visa kurs

Övningsinstruktioner

  • Verifiera att meddelandet inte hamnade i infoStore.
  • Verifiera att det inte heller hamnade i errorStore, med hjälp av times()-metoden för verifiering.
  • Lägg till databasmetoden save() i samma uttryck – den metod som inte anropades.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

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);
    }
}
Redigera och kör kod