Kom igångKom igång gratis

Enhetstest: Varningsutlösning

Inom mjukvaruutveckling är det vanligt att kontrollera att koden körs tillräckligt snabbt genom att utlösa en varning när en operation tar för lång tid. Här ges du en klass som heter DurationMonitor och som är beroende av en AlertService. När klassen tar emot en varaktighet som överstiger 1 sekund (1 000 millisekunder = 1 sekund) utlöser den en varning via AlertService.

Verifiera att varningen verkligen utlöses för långa varaktigheter och att den inte utlöses för varaktigheter under en sekund.

Den här övningen är en del av kursen

Introduktion till testning i Java

Visa kurs

Övningsinstruktioner

  • Verifiera att mocken alertService anropas vid långa varaktigheter.
  • Verifiera vilken metod på alertService som anropas för den angivna långa varaktigheten, och med vilka argument.
  • Verifiera i det andra testet att alertService inte anropas.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

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
        ____(____);
    }
}
Redigera och kör kod