Aan de slagGa gratis aan de slag

Unittest: waarschuwen

In software engineering is het gebruikelijk om te controleren of code snel genoeg draait door een waarschuwing te geven wanneer een bewerking te lang duurt. Hier krijg je een klasse DurationMonitor die afhankelijk is van een AlertService. Wanneer deze een duur krijgt die langer is dan 1 seconde (1000 milliseconden = 1 seconde), triggert hij een waarschuwing op de AlertService.

Verifieer dat de waarschuwing inderdaad afgaat bij lange duurwaardes en niet afgaat bij duurwaardes korter dan een seconde.

Deze oefening maakt deel uit van de cursus

Introductie tot testen in Java

Cursus bekijken

Oefeninstructies

  • Verifieer dat de mock alertService wordt aangeroepen voor lange duurwaardes.
  • Verifieer welke methode op alertService wordt aangeroepen voor het voorbeeld van een lange duur, en met welke argumenten.
  • Verifieer in de tweede test dat alertService niet wordt aangeroepen.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

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
        ____(____);
    }
}
Code bewerken en uitvoeren