Test unitaire : message de base de données
Considérez ErrorStore et InfoStore vus dans la leçon. Supposons que la méthode process(String message) soit utilisée sur un message [WARN], ce qui signifie qu'il ne se retrouvera dans aucune base de données. Rédigez un test pour le vérifier.
Cette activité fait partie du cours
Introduction aux tests en Java
Instructions de l’exercice
- Vérifiez que le message ne s'est pas retrouvé dans
infoStore. - Vérifiez aussi qu'il ne s'est pas retrouvé dans
errorStoreen utilisant l'approche de vérificationtimes(). - Dans cette même instruction, ajoutez la méthode de la base de données,
save(), qui n'a pas été appelée.
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_savesNowhere_whenWrongMessageType() {
InfoStore infoStore = mock(InfoStore.class);
ErrorStore errorStore = mock(ErrorStore.class);
MessageProcessor processor = new MessageProcessor(infoStore, errorStore);
String message = "[WARN] The search is slow.";
processor.process(message);
// Verify infoStore was not called
____(infoStore);
// Verify errorStore.save was called 0 times
verify(errorStore, ____(0)).____(message);
}
}