이 블로그 게시물에서는 이러한 방법의 주요 차이점이 무엇인지 설명하겠습니다. 우선 우리가 이 방법을 사용하는 이유는 무엇입니까? 이 방법은 방법 성능을 테스트하거나 방법을 완료하는 데 시간이 얼마나 걸리는지 알고 싶을 때 유용합니다.
먼저 테스트 방법에 시간을 주어야 하며 그 후에 이러한 테스트는 테스트에서 작업을 실행합니다. 이 작업이 지정된 것보다 오랜 시간이 걸리면 이 테스트는 실패합니다.
이제 우리는 이러한 방법이 무엇인지, 왜 테스트 방법에 사용하는지 알았습니다. 그렇다면 차이점을 알아야 합니다.
간단히 설명하겠습니다. AssertTimeout 메소드는 우리가 제공한 시간을 계산합니다. 테스트 메소드가 지정된 것보다 오래 걸리면 모든 작업이 완료된 후 이 테스트가 실패합니다. 그러나 AssertTimeoutPreemptively 메소드가 지정된 것보다 오래 걸리는 경우 이 메소드는 즉시 실패합니다. 그리고 모든 프로세스가 완료될 때까지 기다리지 않고 다음 단계의 프로젝트에서 이를 테스트할 것입니다.
먼저 즐겨 사용하는 IDE를 엽니다. Intellij Idea를 열게 된 이유는 이 IDE가 Java 개발자들 사이에서 매우 인기가 있기 때문입니다. 물론 Eclipse, Netbeans 등 선호하는 IDE를 사용할 수 있습니다.
이제 새 Maven 프로젝트를 생성하고 pom.xml 파일에 이 두 가지 종속성을 추가하세요.
<dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-api</artifactId> <version>5.3.1</version> <scope>test</scope> </dependency> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-engine</artifactId> <version>5.3.1</version> <scope>test</scope> </dependency>
이를 추가한 후 src/test/java 폴더를 열고
새 클래스를 만들고 원하는 이름을 지정합니다. TimeoutTest를 지정하겠습니다.
2개의 테스트 메서드를 만듭니다. 그 중 하나는 AssertTimeout을 테스트하고 다른 하나는 AssertTimeoutPreemptively를 테스트합니다.
그 후 기간을 지정하고 간단한 인쇄 메시지를 추가합니다.
Thread.sleep() 메서드를 추가하면 Thread가 8000ms(8초) 잠자기 상태가 됩니다. 하지만 이 두 가지 방법은 3초 이상 걸리기 때문에 실패하게 됩니다. 더 잘 이해할 수 있도록 이러한 방법을 테스트해 보겠습니다.
testAssertTimeout 메서드는 모든 작업이 완료될 때까지 기다리기 때문에 8초 3ms가 걸리지만 다른 메서드는 3초 45ms가 걸리고 다른 프로세스가 완료될 때까지 기다리지 않습니다. , 즉시 실패합니다.
testAssertTimeout 메소드는 메시지를 인쇄하지만 AssertTimeoutPreemptively 메소드는 메시지를 인쇄하지 않고 다른 작업을 무시한다는 메시지를 볼 수 있습니다.
이 게시물에서 우리는 AssertTimeout과 AssertTimeoutPreemptively의 주요 차이점에 대해 이야기했습니다.
드디어 Github에 코드가 공개되었습니다.
몸조심하시고 곧 만나요
위 내용은 AssertTimeout과 AssertTimeoutPreemptively의 주요 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!