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 임시 디렉토리를 제공하는데 사용되는 어노테이션입니다.