Zacznij terazZacznij za darmo

Test jednostkowy: wiadomość do bazy danych

Wróć do klas ErrorStore i InfoStore z lekcji. Załóżmy, że metoda process(String message) zostaje wywołana z wiadomością [WARN] – co oznacza, że trafi ona do żadnej z baz danych. Napisz test, który to weryfikuje.

To ćwiczenie jest częścią kursu

Wprowadzenie do testowania w Javie

Zobacz kurs

Instrukcje do ćwiczenia

  • Zweryfikuj, że wiadomość nie trafiła do infoStore.
  • Zweryfikuj, że nie trafiła też do errorStore, korzystając z podejścia times().
  • W tej samej instrukcji dodaj metodę bazy danych, save(), która nie została wywołana.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

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);
    }
}
Edytuj i uruchom kod