JAVA/JUnit
[JUnit5] 번외. 어노테이션 정리표
kujaHn
2021. 10. 8. 13:10
어노테이션 | 설명 |
@Test | 이 메서드가 테스트 메서드임을 알리는 어노테이션입니다. JUnit5가 이 어노테이션을 보고 테스트 메서드임을 인식합니다. |
@ParameterizedTest | 이 메서드가 매개변수를 이용하는 테스트임을 알리는 어노테이션입니다. |
@RepeatedTest | 이 메서드가 반복 테스트 메서드임을 알리는 어노테이션입니다. |
@TestFactory | 이 메서드가 동적 테스트를 위한 테스트 팩토리임을 알리는 어노테이션입니다. |
@TestTemplate | 등록된 공급자가 반환한 호출 컨텍스트의 수에 따라서 여러 번 호출되도록 설계된 테스트임을 알리는 어노테이션입니다. |
@TestClassOrder | @Nested 테스트 클래스에 대한 클래스 실행 순서를 결정하는데 사용되는 어노테이션입니다. |
@TestMethodOrder | JUnit 테스트 메서드는 테스트 실행 순서가 따로 정해져있지 않습니다. (무작위라고 보면 된다.) 이 순서를 정해주는 어노테이션입니다. |
@TestInstance | 인스턴스 생명 주기를 구성하는데 사용되는 어노테이션입니다. (PER_CLASS / PER_METHOD) 기본 생명주기는 메서드단위지만 클래스단위로 바꿀 수 있습니다. |
@DisplayName | 테스트를 실행할 때 사용자들이 알기 쉽도록 테스트 메서드 이름을 바꿔주는 어노테이션. 모든 문자열 표현이 가능합니다. (이모지 등등 포함) |
@DisplayNameGeneration | @DisplayName이 각 테스트 메서드 단위라면 이 어노테이션은 클래스 단위로 작동합니다. 속성은 사용자가 직접 커스텀해서 규칙을 만들 수 있습니다. |
@BeforeEach | JUnit4의 @Before이 @BeforeEach로 변경되었습니다. 각 테스트 메서드가 실행되기 이전에 이 메서드를 실행하도록 하는 어노테이션입니다. |
@AfterEach | JUnit4의 @After이 @AfterEach로 변경되었습니다. 각 테스트 메서드가 실행되는 이후에 이 메서드를 실행하도록 하는 어노테이션입니다. |
@BeforeAll | JUnit4의 @BeforeClass가 @BeforeAll로 변경되었습니다. 테스트 클래스 시작 전에 이 메서드를 실행하도록 하는 어노테이션입니다. (참고. 항상 이 어노테이션을 사용하는 테스트메서드는 static해야 합니다.) |
@AfterAll | JUnit4의 @AfterClass가 @AfterAll로 변경되었습니다. 테스트 클래스 종료 직전에 이 메서드를 실행하도록 하는 어노테이션입니다. (참고. 항상 이 어노테이션을 사용하는 테스트메서드는 static해야 합니다.) |
@Nested | 공통되는 메서드들을 Inner Class로 묶을때 사용되는 어노테이션입니다. |
@Tag | JUnit4의 Category가 @Tag로 변경되었습니다. 선택적으로 테스트 메서드를 실행하기 위한 필터링 어노테이션입니다. |
@Disabled | JUnit4의 @Ignore가 @Disabled로 변경되었습니다. 코드 업데이트를 통해 해당 테스트를 실행하고싶지 않은 경우 비활성화를 하는 어노테이션입니다. |
@Timeout | 테스트 메서드가 지정된 실행 시간을 넘으면 실패를 나타내는데 사용하는 어노테이션입니다. 조금 더 세세한 측정을 원한다면 assertTimeout을 사용하면 됩니다. |
@ExtendWith | 생성한 Extension을 선언적으로 등록하는데 사용되는 어노테이션입니다. (예시 : 모든 테스트를 고정된 기준으로 필터링하고 싶은 경우에 사용) |
@RegisterExtension | 생성한 Extension을 필드를 통해 프로그래밍 방식으로 등록하는 방식입니다. (예시 : 필터링 기준을 테스트마다 변경하고 싶은 경우에 사용) |
@TempDir | 임시 디렉토리를 제공하는데 사용되는 어노테이션입니다. |