Юнит-тест: оповещение
В разработке программного обеспечения важно следить за тем, чтобы код выполнялся достаточно быстро: если операция занимает слишком много времени, система должна отправить оповещение. В этом упражнении вам дан класс DurationMonitor, который зависит от AlertService. Если переданная длительность превышает 1 секунду (1000 миллисекунд), класс вызывает оповещение через AlertService.
Проверьте, что оповещение действительно срабатывает при большой длительности и не срабатывает, если длительность меньше секунды.
Это упражнение является частью курса
Введение в тестирование на Java
Инструкции к упражнению
- Убедитесь, что мок
alertServiceвызывается при большой длительности. - Определите, какой метод
alertServiceвызывается для заданной большой длительности и с какими аргументами. - Во втором тесте проверьте, что
alertServiceне вызывается.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
public class Main {
public static void main(String[] args) {
launchMockitoTestsAndPrint(DurationMonitorTest.class);
}
}
class DurationMonitorTest {
@Test
void recordDuration_triggersAlert_whenAboveLimit() {
AlertService alertService = mock(AlertService.class);
DurationMonitor monitor = new DurationMonitor(alertService);
monitor.recordDuration(1500);
// Verify alertService.trigger() was called with the expected message
____(alertService).____("Slow execution detected: 1500ms");
}
@Test
void recordDuration_doesNotTriggerAlert_whenUnderLimit() {
AlertService alertService = mock(AlertService.class);
DurationMonitor monitor = new DurationMonitor(alertService);
monitor.recordDuration(500);
// Verify alertService was not used
____(____);
}
}