Začněte nyníZačněte zdarma

Jednotkový test: upozornění

V softwarovém inženýrství je běžné hlídat, jestli kód běží dostatečně rychle – například tak, že se spustí upozornění, když operace trvá příliš dlouho. Zde máš k dispozici třídu DurationMonitor, která závisí na AlertService. Pokud obdrží dobu trvání delší než 1 sekunda (1 000 milisekund = 1 sekunda), spustí upozornění na AlertService.

Ověř, že se upozornění skutečně spustí při dlouhých dobách trvání a že se nespustí pro doby kratší než jedna sekunda.

Toto cvičení je součástí kurzu

Úvod do testování v Javě

Zobrazit kurz

Pokyny k cvičení

  • Ověř, že mock alertService je zavolán při dlouhých dobách trvání.
  • Zjisti, která metoda na alertService se volá pro ukázkovou dlouhou dobu trvání a s jakými argumenty.
  • Ve druhém testu ověř, že alertService není vůbec zavolán.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

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
        ____(____);
    }
}
Upravit a spustit kód