CommencezCommencez gratuitement

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

Voir le cours

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 errorStore en utilisant l'approche de vérification times().
  • 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);
    }
}
Modifier et exécuter le code