Test unitaire : message base de données
Reprenez 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 finirait dans aucune des deux bases. Écrivez un test pour le vérifier.
Cet exercice fait partie du cours
Introduction aux tests en Java
Instructions
- Vérifiez que le message n’a pas été enregistré dans
infoStore. - Vérifiez également qu’il n’a pas été enregistré dans
errorStoreen utilisant l’approche de vérificationtimes(). - Dans cette même instruction, ajoutez la méthode de base de données
save()qui n’a pas été appelée.
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_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);
}
}