ÎncepețiÎncepe gratuit

Test unitar: Alertare

În ingineria software, este important să te asiguri că aplicația rulează suficient de rapid, declanșând o alertă atunci când o operațiune durează prea mult. Aici ai la dispoziție o clasă numită DurationMonitor, care depinde de un AlertService. Când primește o durată mai mare de 1 secundă (1000 milisecunde = 1 secundă), declanșează o alertă pe AlertService.

Verifică că alerta se declanșează pentru duratele lungi și că nu se declanșează pentru duratele sub o secundă.

Acest exercițiu face parte din cursul

Introducere în testarea în Java

Vezi cursul

Instrucțiuni pentru exercițiu

  • Verifică că mock-ul alertService este apelat pentru duratele lungi.
  • Identifică ce metodă de pe alertService este apelată pentru exemplul de durată lungă și cu ce argumente.
  • Verifică în cel de-al doilea test că alertService nu este apelat.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

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
        ____(____);
    }
}
Editează și rulează codul