Unit test: Database with a list
Consider the ErrorStore and InfoStore from the lesson, but now our process() method is accepting a list of
messages. Given the input list provided, verify each database was called the correct number of times.
Diese Übung ist Teil des Kurses
Introduction to Testing in Java
Anleitung zur Übung
- Create a mock for the
InfoStore. - Create a mock for the
ErrorStore. - Verify how many times the
InfoStoremock will be called with the current arguments. - Verify how many times the
ErrorStoremock will be called with the current arguments.
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.");
}
}