"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > AssertTimeout과 AssertTimeoutPreemptively의 주요 차이점은 무엇입니까?

AssertTimeout과 AssertTimeoutPreemptively의 주요 차이점은 무엇입니까?

2024-07-30에 게시됨
검색:723

이 블로그 게시물에서는 이러한 방법의 주요 차이점이 무엇인지 설명하겠습니다. 우선 우리가 이 방법을 사용하는 이유는 무엇입니까? 이 방법은 메소드 성능을 테스트하거나 메소드를 완료하는 데 시간이 얼마나 걸리는지 알고 싶을 때 유용합니다.

이 방법은 어떻게 작동합니까?

먼저 테스트 메서드에 시간을 주어야 하며 그 후에 이러한 테스트는 테스트에서 작업을 실행합니다. 이 작업이 지정된 것보다 오랜 시간이 걸리면 이 테스트는 실패합니다.

AssertTimeout과 AssertTimeoutPreemptively의 차이점

자 이제 우리는 이러한 방법이 무엇인지, 왜 테스트 방법에 사용하는지 알았습니다. 그렇다면 차이점을 알아야 합니다.

간단히 설명하겠습니다. AssertTimeout 메소드는 우리가 제공한 시간을 계산합니다. 테스트 메소드가 지정된 것보다 오래 걸리면 모든 작업이 완료된 후 이 테스트가 실패합니다. 그러나 AssertTimeoutPreemptively 메소드가 지정된 것보다 오래 걸리는 경우 이 메소드는 즉시 실패합니다. 그리고 모든 프로세스가 완료될 때까지 기다리지 않고 다음 단계의 프로젝트에서 이를 테스트할 것입니다.

시험

먼저 즐겨 사용하는 IDE를 엽니다. Intellij Idea를 열게 된 이유는 이 IDE가 Java 개발자들 사이에서 매우 인기가 있기 때문입니다. 물론 Eclipse, Netbeans 등 선호하는 IDE를 사용할 수 있습니다.

이제 새 Maven 프로젝트를 만들고 pom.xml 파일에 다음 2개의 종속성을 추가하세요.


    org.junit.jupiter
    junit-jupiter-api
    5.3.1
    test


    org.junit.jupiter
    junit-jupiter-engine
    5.3.1
    test

이를 추가한 후 src/test/java 폴더를 열고

새 클래스를 만들고 원하는 이름을 지정하세요. TimeoutTest를 지정하겠습니다.

2개의 테스트 메서드를 만듭니다. 그 중 하나는 AssertTimeout을 테스트하고 다른 하나는 AssertTimeoutPreemptively를 테스트합니다.

assertTimeout and assertTimeoutPreemptively

그 후 기간을 지정하고 간단한 인쇄 메시지를 추가합니다.

Informational messages

Thread.sleep() 메서드를 추가하면 Thread가 절전 모드로 전환됩니다. 8000ms(8초) 하지만 이 두 가지 방법은 3초 이상 걸리기 때문에 실패하게 됩니다. 더 잘 이해하기 위해 이러한 방법을 테스트해 보겠습니다.

result of methods

그리고 testAssertTimeout 메소드는 모든 작업이 완료될 때까지 기다리기 때문에 8초 3ms가 걸리지만 다른 메소드는 3초 45ms가 걸리고 다른 프로세스가 완료될 때까지 기다리지 않습니다. , 즉시 실패합니다.

testAssertTimeout 메소드가 메시지를 인쇄하지만 AssertTimeoutPreemptively 메소드는 메시지를 인쇄하지 않고 다른 작업을 무시한다는 메시지를 볼 수 있습니다.

결론

이 게시물에서 우리는 AssertTimeout과 AssertTimeoutPreemptively의 주요 차이점에 대해 이야기했습니다.

드디어 Github에서 코드를 사용할 수 있습니다.

몸조심하시고 곧 만나요.

릴리스 선언문 이 기사는 https://dev.to/mammadyahyayev/what-is-the-main-difference-between-asserttimeout-and-asserttimeoutpreemptively-8l?1에서 복제됩니다.1 침해 사항이 있는 경우, [email protected]에 문의하십시오. 그것을 삭제하려면
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3