시작하기무료로 시작하기

단위 테스트: 경고(알림)

소프트웨어 공학에서는 연산이 너무 오래 걸릴 때 경고를 발생시켜 코드가 충분히 빠르게 실행되는지 확인하는 경우가 흔합니다. 여기서는 AlertService에 의존하는 DurationMonitor라는 클래스가 주어집니다. 이 클래스는 1초(1000밀리초 = 1초)보다 긴 지속 시간을 받으면 AlertService에 경고를 발생시킵니다.

긴 지속 시간에는 실제로 경고가 발생하고, 1초 미만의 지속 시간에는 발생하지 않는지 검증하세요.

이 연습은 강의의 일부입니다

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
        ____(____);
    }
}
코드 편집 및 실행