Začněte nyníZačněte zdarma

Unit test: Zpráva v databázi

Vzpomeň si na ErrorStore a InfoStore z lekce. Představ si, že metoda process(String message) dostane zprávu [WARN] – ta neskončí ani v jedné databázi. Napiš test, který toto chování ověří.

Toto cvičení je součástí kurzu

Úvod do testování v Javě

Zobrazit kurz

Pokyny k cvičení

  • Ověř, že zpráva neskončila v infoStore.
  • Ověř, že neskončila ani v errorStore – tentokrát pomocí přístupu s times().
  • Ve stejném volání přidej databázovou metodu save(), která nebyla zavolána.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

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);
    }
}
Upravit a spustit kód