ÎncepețiÎncepe gratuit

Test unitar: Mesaj în baza de date

Gândește-te la ErrorStore și InfoStore din lecție. Presupune că metoda process(String message) este apelată cu un mesaj de tip [WARN], ceea ce înseamnă că acesta nu va ajunge în nicio bază de date. Scrie un test care să verifice acest lucru.

Acest exercițiu face parte din cursul

Introducere în testarea în Java

Vezi cursul

Instrucțiuni pentru exercițiu

  • Verifică că mesajul nu a ajuns în infoStore.
  • Verifică că nu a ajuns nici în errorStore, folosind abordarea de verificare cu times().
  • În același enunț, adaugă metoda bazei de date, save(), care nu a fost apelată.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

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);
    }
}
Editează și rulează codul