1. @Test
- 테스트 메서드임을 나타내는 어노테이션. 테스트 하려는 메서드에 붙여서 사용할 수 있다.
public class MyTestClass {
@Test
void myTest1() {
System.out.println("myTest1");
}
}
2. @BeforeAll, @AfterAll: 생명주기 어노테이션
2.1. @BeforeAll
- 클래스가 실행되기 전 한 번만 실행되는 메서드
2.2. @AfterAll
- 클래스의 모든 테스트 메서드가 실행된 후 한 번만 실행되는 메서드
2.3. @BeforeEach
- 클래스의 각 테스트 메서드가 실행되기 전 매번 실행되는 메서드
2.4. @AfterEach
- 클래스의 각 테스트 메서드가 실행된 후 매번 실행되는 메서드
@Test 여러개 있을 때 Before/After All과 Before/After Each가 각각 몇번 동작하는지 보여주기
3. @Disabled
- 테스트에 포함시키지 않는 클래스/메서드에 사용
public class MyTestClass {
@Test
@Disabled("사용하지 않는 테스트")
void myTest1() {
System.out.println("myTest1");
}
}
4. @DisplayName
- Junit 테스트 결과 창에서 테스트 메서드의 이름 대신 보여주는 문구를 지정
public class MyTestClass {
@Test
@DisplayName("메서드 대신 보여줄 내용!")
void myTest1() {
System.out.println("myTest1");
}
}
5. @RepeatedTest
- 반복 테스트를 하고싶은 메서드에 사용. @RepeatedTest를 사용할 땐 @Test 어노테이션을 제거한다
- 성능 테스트를 하기 위해 여러번 실험(테스트)이 필요한 경우 사용할 때 유용하다
- value 속성
- 반복 횟수를 지정한다. default 옵션으로 단순 숫자만 쓸 경우 value 값으로 인식한다 (사용 예시1 참고)
- name 속성
- @DisplayName의 역할을 한다
- RepeatedTest가 제공하는 변수를 사용하면 각 테스트의 이름을 알아보기 쉽게 만들 수 있다
- RepeatedTest.CURRENT_REPETITION_PLACEHOLDER
: 현재 반복 횟수. "{currentRepetition}"과 동일하다 - RepeatedTest.TOTAL_REPETITIONS_PLACEHOLDER
: 전체 반복 횟수. "{totalRepetitions}"와 동일하다 - RepeatedTest.SHORT_DISPLAY_NAME
: 간단히(Short) 현재 반복횟수 / 전체 반복 횟수를 나타낸다 - RepeatedTest.LONG_DISPLAY_NAME
: '메서드 명을 포함'해 현재 반복횟수 / 전체 반복 횟수를 나타낸다 - RepeatedTest.DISPLAY_NAME_PLACEHOLDER
: @DisplayName 어노테이션이 있을 경우 해당 값을 보여주고, 없을 경우 함수명을 나타낸다.
"{displayName}"과 동일하다
- RepeatedTest.CURRENT_REPETITION_PLACEHOLDER
사용 예시1
@RepeatedTest(3)
import org.junit.jupiter.api.RepeatedTest;
public class MyTestClass {
@RepeatedTest(3)
void myTest1() {
System.out.println("myTest1");
}
}
테스트 결과
사용 예시2.1
@RepeatedTest(value = 3, name = RepeatedTest.CURRENT_REPETITION_PLACEHOLDER)
import org.junit.jupiter.api.RepeatedTest;
public class MyTestClass {
@RepeatedTest(value = 3, name = RepeatedTest.CURRENT_REPETITION_PLACEHOLDER)
void myTest1() {
System.out.println("myTest1");
}
}
테스트 결과
사용 예시2.2
@RepeatedTest(value = 3, name = "{currentRepetition}")
import org.junit.jupiter.api.RepeatedTest;
public class MyTestClass {
@RepeatedTest(value = 3, name = "{currentRepetition}")
void myTest1() {
System.out.println("myTest1");
}
}
테스트 결과: 사용 예시 2.1과 동일
사용 예시3
@RepeatedTest(value = 3, name = RepeatedTest.LONG_DISPLAY_NAME)
import org.junit.jupiter.api.RepeatedTest;
public class MyTestClass {
@RepeatedTest(value = 3, name = RepeatedTest.LONG_DISPLAY_NAME)
void myTest1() {
System.out.println("myTest1");
}
}
테스트 결과
[Reference]
JUnit5 Official Doc | https://junit.org/junit5/docs/current/user-guide/
우아한형제들 테코톡 | https://www.youtube.com/watch?v=EwI3E9Natcw
'Back-End > Java' 카테고리의 다른 글
[Java] lombok의 @Builder 사용시 필수 필드를 입력하게 하는 방법 (0) | 2023.03.14 |
---|---|
[Java] Java Array와 Hash의 데이터 접근/삽입 속도 비교 (0) | 2022.03.06 |
[Java] Process & Thread 개념 (0) | 2022.02.21 |
[Java] Java에서 외부 jar 실행 후 출력되는 결과 가져오기 (0) | 2022.02.15 |
[Java] 외부 jar 실행 후 pid(process id) 가져오기(Java 8) (0) | 2022.02.11 |