BeforeEach: waarschuwen
Naarmate je project complexer wordt, kunnen tests steeds meer setup nodig hebben. Om daarop voorbereid te zijn, kijk je opnieuw naar de DurationMonitorTest en gebruik je de nieuwe annotaties om een deel van de test-setup in een setup()-methode onder te brengen.
Gebruik @BeforeEach om de setup vóór elke test uit te voeren.
Deze oefening maakt deel uit van de cursus
Introductie tot testen in Java
Oefeninstructies
- Voorzie de
setup()-methode van de juiste annotatie. - Schrijf de noodzakelijke setup erin:
AlertServiceis een mock,DurationMonitorkrijgt die mock mee.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
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);
}
}