BeforeEach: Aviseringar
I takt med att projektet växer kan testerna kräva allt längre setup-kod. Med det i åtanke återvänder du till DurationMonitorTest och använder de nya annotationerna för att lyfta ut en del av testuppsättningen till en setup()-metod.
Använd @BeforeEach för att se till att setup-koden körs före varje test.
Den här övningen är en del av kursen
Introduktion till testning i Java
Övningsinstruktioner
- Annotera
setup()-metoden med rätt annotation. - Skriv den nödvändiga setup-koden inuti den:
AlertServiceär en mock ochDurationMonitortar emot den mocken.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
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);
}
}