ПочатиПочніть безкоштовно

Модульний тест: сповіщення

У розробці програм часто потрібно переконатися, що код працює достатньо швидко, наприклад, надсилати сповіщення, коли операція виконується занадто довго. Тут вам надано клас DurationMonitor, який залежить від AlertService. Якщо він отримує тривалість понад 1 секунду (1000 мілісекунд = 1 секунда), він ініціює сповіщення в 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
        ____(____);
    }
}
Редагувати та запускати код