LoslegenKostenlos loslegen

Unit-Test: Alarmierung

In der Softwareentwicklung ist es üblich sicherzustellen, dass Code schnell genug läuft, indem ein Alarm ausgelöst wird, wenn eine Operation zu lange dauert. Hier bekommst du eine Klasse namens DurationMonitor, die von einem AlertService abhängt. Wenn sie eine Dauer länger als 1 Sekunde erhält (1000 Millisekunden = 1 Sekunde), löst sie im AlertService einen Alarm aus.

Überprüfe, dass der Alarm für lange Dauern tatsächlich ausgelöst wird und für Dauern unter einer Sekunde nicht ausgelöst wird.

Diese Übung ist Teil des Kurses

Einführung in das Testen in Java

Kurs anzeigen

Anleitung zur Übung

  • Überprüfe, dass der Mock alertService für lange Dauern aufgerufen wird.
  • Überprüfe, welche Methode auf alertService für das Beispiel mit langer Dauer aufgerufen wird und mit welchen Argumenten.
  • Überprüfe im zweiten Test, dass alertService nicht aufgerufen wird.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

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 bearbeiten und ausführen