Test unitaire : base de données avec une liste
Reprenez ErrorStore et InfoStore vus dans la leçon, mais cette fois, notre méthode process() reçoit une liste de messages. À partir de la liste fournie, vérifiez que chaque base de données est appelée le bon nombre de fois.
Cette activité fait partie du cours
Introduction aux tests en Java
Instructions de l’exercice
- Créez un mock pour
InfoStore. - Créez un mock pour
ErrorStore. - Vérifiez combien de fois le mock
InfoStoreest appelé avec les arguments actuels. - Vérifiez combien de fois le mock
ErrorStoreest appelé avec les arguments actuels.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
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.");
}
}