Java

[ java ] Duration.ofSeconds, Duration.ofMillis 사용법

JooKit 주킷 2021. 1. 5. 23:25
목차 접기
728x90
반응형

Test를 할 때 주로 사용

  • Duration.ofSeconds()
  • Duration.ofMillis()
  • 테스트를 할 때, 해당 메서드의 실행 시간을 확인하는 역할을 한다.

예시

@Test
    @DisplayName("스터디 시작")
    void create_new_study()
    {
        assertTimeout(Duration.ofMillis(100), () -> {
            new Study(10);
            Thread.sleep(300);
        });
    }
  • 해당 메서드의 실행종료까지 소요시간을 확인해서 0.100s를 초과하는 경우에 테스트는 실패한다.
  • 메서드 실행 시간을 확인하기 위해서 Thread.sleep을 사용하여 테스트 실패를 유도했다.
  • 위의 코드는 메서드가 모두 실행이 된 후(300 millis를 잠재훈 후)까지 시간을 확인해서 테스트 실패 여부를 알려준다.


  • 반면에 아래의 코드는 Duration.ofMillis(100)을 넘기면 테스트 실패로 실행을 바로 종료시킨다.
  • 그러나 아래 방법은 문제가 많아 권장하지 않는다.
@Test
    @DisplayName("스터디 시작")
    void create_new_study()
    {
        assertTimeoutPreemptively(Duration.ofMillis(100), () -> {
            new Study(10);
            Thread.sleep(300);
        });
    }
728x90
반응형
LIST