LoslegenKostenlos starten

Unit-Test: Datenbank mit einer Liste

Betrachte ErrorStore und InfoStore aus der Lektion, aber jetzt akzeptiert unsere Methode process() eine Liste von Nachrichten. Mit der gegebenen Eingabeliste sollst du prüfen, ob jede Datenbank die richtige Anzahl von Aufrufen erhalten hat.

Diese Übung ist Teil des Kurses

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

Übungsanweisungen

  • Erstelle ein Mock für den InfoStore.
  • Erstelle ein Mock für den ErrorStore.
  • Prüfe, wie oft das InfoStore-Mock mit den aktuellen Argumenten aufgerufen wird.
  • Prüfe, wie oft das ErrorStore-Mock mit den aktuellen Argumenten aufgerufen wird.

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_savesToCorrectDatabase_whenValidInputList() {
        List sampleMessages = new ArrayList<>();
        sampleMessages.add("[INFO] An info message.");
        sampleMessages.add("[INFO] An info message.");
        sampleMessages.add("[ERROR] An error message.");
        sampleMessages.add("[INFO] An info message.");
        
    	// Create a mock for the InfoStore
        InfoStore ____ = ____(____.class);
        // Create a mock for the ErrorStore
        ErrorStore ____ = ____(____.class);
        MessageProcessor processor = new MessageProcessor(infoStore, errorStore);
        processor.process(sampleMessages);

		// Verify how many times the infoStore has to store the message
        ____(____, times(3)).save("[INFO] An info message.");
        // Verify how many times the errorStore has to store the message
        ____(____, times(1)).save("[ERROR] An error message."); 
    }
}
Code bearbeiten und ausführen