CommencezCommencez gratuitement

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() reçoit une liste de messages. À partir de la liste fournie, vérifiez que chaque base de données est appelée le bon nombre de fois.

Cette activité fait partie du cours

Introduction aux tests en Java

Voir le cours

Instructions de l’exercice

  • Créez un mock pour InfoStore.
  • Créez un mock pour ErrorStore.
  • Vérifiez combien de fois le mock InfoStore est appelé avec les arguments actuels.
  • Vérifiez combien de fois le mock ErrorStore est appelé avec les arguments actuels.

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_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."); 
    }
}
Modifier et exécuter le code