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() accepte une liste de messages. À partir de la liste fournie, vérifiez que chaque base de données a été appelée le bon nombre de fois.
Cet exercice fait partie du cours
Introduction aux tests en Java
Instructions
- 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 cet exemple de code.
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.");
}
}