BeforeEach: Alarmierung
Wenn dein Projekt komplexer wird, kann das Setup deiner Tests immer umfangreicher werden. Vorausschauend überarbeitest du den DurationMonitorTest und nutzt die neuen Annotationen, um einen Teil des Test-Setups in eine setup()-Methode auszulagern.
Verwende @BeforeEach, damit das Setup vor jedem Test ausgeführt wird.
Diese Übung ist Teil des Kurses
Einführung in das Testen in Java
Anleitung zur Übung
- Annotiere die Methode
setup()mit der richtigen Annotation. - Schreibe das notwendige Setup hinein:
AlertServiceist ein Mock,DurationMonitorbekommt diesen Mock übergeben.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
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);
}
}