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
Instrucțiuni pentru exercițiu
- Verifică că mock-ul
alertServiceeste apelat pentru duratele lungi. - Identifică ce metodă de pe
alertServiceeste apelată pentru exemplul de durată lungă și cu ce argumente. - Verifică în cel de-al doilea test că
alertServicenu 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
____(____);
}
}