BeforeEach: Alertare
Pe măsură ce proiectul tău crește în complexitate, testele pot necesita configurări tot mai elaborate. Anticipând acest lucru, revii la DurationMonitorTest și folosești noile adnotări pentru a extrage o parte din configurarea testelor într-o metodă setup().
Folosește @BeforeEach pentru ca această configurare să se execute înaintea fiecărui test.
Acest exercițiu face parte din cursul
Introducere în testarea în Java
Instrucțiuni pentru exercițiu
- Adnotează metoda
setup()cu adnotarea corectă. - Scrie configurarea necesară în interior:
AlertServiceeste un mock, iarDurationMonitorprimește acel mock ca argument.
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 {
private AlertService alertService;
private DurationMonitor monitor;
// Use the correct annotation to make this method execute before every test
@____
void setUp() {
// Set up the mock alertService and the monitor as you did in the earlier exercise
this.alertService = ____(____.class);
this.monitor = new ____(alertService);
}
@Test
void recordDuration_triggersAlert_whenAboveLimit() {
this.monitor.recordDuration(1500);
verify(this.alertService).trigger("Slow execution detected: 1500ms");
}
@Test
void recordDuration_doesNotTriggerAlert_whenUnderLimit() {
this.monitor.recordDuration(500);
verifyNoInteractions(this.alertService);
}
}