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
Einführung in das Testen in Java
Anleitung zur Übung
- 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 Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
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.");
}
}