BeforeEach: Alerting
As the complexity of your project grows, tests may require longer and longer setup. Anticipating this, you revisit the DurationMonitorTest and use the new annotations to extract some of the test setup in a setup() method.
Use @BeforeEach to make the setup execute before each test.
Bu egzersiz
Introduction to Testing in Java
kursunun bir parçasıdırEgzersiz talimatları
- Annotate the
setup()method with the correct annotation. - Write down the necessary setup inside:
AlertServiceis a mock,DurationMonitortakes in that mock.
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
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);
}
}