LoslegenKostenlos starten

Unittest: Datenbanknachricht

Betrachte ErrorStore und InfoStore aus der Lektion. Angenommen, die Methode process(String message) wird mit einer [WARN]-Nachricht verwendet. Das bedeutet, sie würde in keiner der beiden Datenbanken landen. Schreibe einen Test, der das überprüft.

Diese Übung ist Teil des Kurses

<Kurs>Einführung in das Testen in Java</Kurs>
Kurs ansehen

Übungsanweisungen

  • Überprüfe, dass die Nachricht nicht in infoStore gelandet ist.
  • Überprüfe außerdem mit dem times()-Ansatz von verify, dass sie auch nicht in errorStore gelandet ist.
  • Füge in derselben Anweisung die Datenbankmethode save() hinzu, die nicht aufgerufen wurde.

Interaktive praktische Übung

Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.

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);
    }
}
Code bearbeiten und ausführen