CommencerCommencer gratuitement

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

Afficher le cours

Instructions

  • Vérifiez que le message n’a pas été enregistré dans infoStore.
  • Vérifiez également qu’il n’a pas été enregistré dans errorStore en utilisant l’approche de vérification times().
  • 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);
    }
}
Modifier et exécuter le code