본문 바로가기

728x90

Java/Junit 5

(10)
Junit 5 - timeouts Junit 5 시간 초과 – 테스트가 시간 내에 실행되지 않으면 실패 이번글 에서는 Junit 5 타임아웃이 무엇인지, 테스트 케이스를 작성할 때 @Timeout을 사용하는 방법, 글로벌 타임아웃을 사용하는 방법 및 여러 예제를 통해 전역적으로 타임아웃을 비활성화하는 방법을 살펴보도록 하겠습니다. Junit 5 시간 제한을 사용하면 실행 시간이 지정된 기간을 초과하고 결과로 java.util.concurrent.TimeoutException이 발생하는 경우 테스트, 테스트 팩토리, 테스트 템플릿 또는 수명 주기 메서드가 실패하도록 선언할 수 있습니다. 시간 단위는 기본적으로 초이지만 변경할 수 있습니다. 다음은 Junit 5가 제한 시간을 지원하는 몇 가지 방법입니다. 1. @Timeout Annotat..
Junit 5 - 반복 테스트 Junit 5에서 반복 테스트 작동 방식, 테스트 케이스 작성 시 @RepeatedTest, RepetitionInfo 사용 방법, 반복 테스트 작성 시 사용자 지정 이름 표시, 테스트 메서드 실행 순서가 반복 테스트에서 작동하는 방식 및 다음을 사용하여 사용자 지정 Annotation을 만드는 방법을 살펴보도록 하겠습니다. 1. Junit 5 반복 테스트 @RepeatedTest Annotation이 달린 메서드는 지정된 횟수만큼 반복되어야 하는 테스트 템플릿 메서드임을 알리는 데 사용됩니다. 1.1. @RepeatedTest 예제 @RepeatedTest 테스트 메서드는 일반 @Test 메서드와 동일하며 동일한 수명 주기입니다. @RepeatedTest 테스트 메서드는 private이거나 statti..
Junit 5 - 조건부 테스트 실행 Junit 5 조건부 테스트 실행이 무엇인지 살펴보고 Jupiter api가 지원하는 다양한 조건이 무엇인지 몇 가지 예를 통해 살펴보겠습니다. 1. Junit 5 조건부 테스트 실행 다음은 Junit 5 Jupiter API가 테스트 사례를 활성화 또는 비활성화하기 위해 지원하는 몇 가지 조건입니다. 1. @EnabledOnOs 및 @DisabledOnOs Annotaton을 통한 운영 체제 조건 2. @EnabledOnJre, @DisabledOnJre, @EnabledForJreRange 및 @DisabledForJreRange Annotaton을 통한 자바 런타임 환경 조건 3. @EnabledIfSystemProperty 및 @DisabledIfSystemProperty Annotaton을 통한..
Junit 5 - @Disabled 이번 글에서는 클래스 수준 및 메서드 수준에서 @Disabled 주석을 사용하여 Junit 5가 테스트를 비활성화하거나 Junit 5 테스트 사례를 건너뛰는 것을 배워보도록 하겠습니다. 1. 테스트를 비활성화하는 이유는 무엇입니까? 개발 중에 기능 또는 기능에 알려진 문제가 있기 때문에 실행에서 일부 테스트를 비활성화하거나 건너뛸 수 있습니다. JUnit에서 테스트를 무시하려면 클래스 또는 메서드 위의 @Test Annotation을 제거할 수 있는 Annotation을 달 수 있습니다. 이 경우 비활성화된 테스트는 생성된 보고서 또는 실행기 결과에 없습니다. 실패, 건너뛰기 또는 통과 여부와 그 이유에 대한 보고서의 모든 테스트 사례에 대한 기록을 포함하는 것이 항상 좋습니다. Junit 5 Jupit..
Junit 5 - Assumptions 1. Junit 5에서 Assumptions은 조건에 기반한 조건부 테스트 실행을 지원하는 유틸리티 메서드 모음입니다. 2. Junit 5는 JUnit 4가 Java 8 람다 식 및 메서드 참조와 함께 제공하는 가정 메서드의 하위 집합과 함께 제공됩니다. 3. 모든 JUnit Jupiter 가정은 org.junit.jupiter.api.Assumptions 클래스의 정적 메서드입니다. 4. JUnit Jupiter 5.4부터는 JUnit 4의 org.junit.Assume 클래스의 메서드를 조건에 사용할 수도 있습니다. 5. Assumptions 클래스는 다음과 같은 오버로드된 메서드를 제공합니다. 1) Assumptions.assumeTrue() : 조건이 참이면 테스트를 실행하고 그렇지 않으면 테스트..
Junit 5 – @TestInstance Junit5 @TestInstance Annotation 과 @TestInstance Annotation을 사용하여 테스트 인스턴스 수명 주기 동작을 변경하는 방법에 대하여 알아보도록 하겠습니다. 1. Junit 5 테스트 인스턴스 수명 주기 JUnit은 각 테스트 메서드를 실행하기 전에 각 테스트 클래스의 새 인스턴스를 만듭니다. Junit5 테스트 인스턴스 수명 주기의 기본 동작은 '메소드별'입니다. 이것은 @TestInstance 주석을 사용하여 변경할 수 있습니다. Junit 5는 두 가지 인스턴스 수명 주기 모드를 지원합니다. 1. Lifecycle per-method(메서드별 수명 주기) 2. Lifecycle per-class(클래스별 수명 주기) 테스트 클래스에 @TestInstance A..
Junit 5 – Display names 이번에는 @DisplayName을 사용하여 테스트에 대한 설명을 설정하는 방법과 @DisplayNameGeneration을 사용하여 테스트의 기본 이름을 생성하는 방법 및 예제를 통해 DisplayNameGenerator를 확장하는 사용자 지정 표시 이름을 만드는 방법을 살펴봅니다. 1. @DisplayName Junit 5에서는 테스트 클래스 및 테스트 메서드에 @DisplayName Annotation을 통해 테스트 결과에 표시되는 이름을 변경할 수 있습니다. 우선 @DisplayName Annotation을 사용하지 않았을때의 표시 내용입니다. Calculator.java 파일은 이전 글에서 만든 것을 사용하겠습니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 ..
Junit 5 Gradle Projec Eclipse IDE for Enterprise Java and Web Developers Version: 2022-12 (4.26.0) gradle 8.0 JAVA 17 JUNIT 5.9.2 Gradle Project를 생성합니다. 1. [File]- [New] - [Other...]를 차례대로 선택합니다. 2. [Gradle] - [Gradle Project]를 선택하고 [Next]를 클릭합니다. 3. [Next]를 클릭합니다. 4. Project 이름(Ex02_Junit5_Gradle)을 입력하고 [Next]를 클릭합니다. 5. Gradle user home과 Java home을 선택하고 [Finish]를 클릭합니다. 6. Gradle Project가 생성되었는데 입력한 프로젝트 이름과 lib폴더로..

728x90