CommencezCommencez gratuitement

Test unitaire : Alerte

En génie logiciel, on s'assure souvent que le code s'exécute assez rapidement en déclenchant une alerte lorsqu'une opération prend trop de temps. Ici, on vous fournit une classe nommée DurationMonitor qui dépend de AlertService. Lorsqu'elle reçoit une durée de plus de 1 seconde (1000 millisecondes = 1 seconde), elle déclenche une alerte sur AlertService.

Vérifiez que l'alerte se déclenche bien pour les longues durées et qu'elle ne se déclenche pas pour des durées inférieures à une seconde.

Cette activité fait partie du cours

Introduction aux tests en Java

Voir le cours

Instructions de l’exercice

  • Vérifiez que le mock alertService est appelé pour les longues durées.
  • Vérifiez quelle méthode de alertService est appelée pour l'exemple de longue durée, et avec quels arguments.
  • Vérifiez dans le deuxième test que alertService n'est pas appelé.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

public class Main {
    public static void main(String[] args) {
        launchMockitoTestsAndPrint(DurationMonitorTest.class);
    }
}

class DurationMonitorTest {

    @Test
    void recordDuration_triggersAlert_whenAboveLimit() {
        AlertService alertService = mock(AlertService.class);
        DurationMonitor monitor = new DurationMonitor(alertService);
        monitor.recordDuration(1500);

        // Verify alertService.trigger() was called with the expected message
        ____(alertService).____("Slow execution detected: 1500ms");
    }

    @Test
    void recordDuration_doesNotTriggerAlert_whenUnderLimit() {
        AlertService alertService = mock(AlertService.class);
        DurationMonitor monitor = new DurationMonitor(alertService);
        monitor.recordDuration(500);

        // Verify alertService was not used
        ____(____);
    }
}
Modifier et exécuter le code