JUnit 5 Annotations
in BackEnd / Test
JUnit 5
어노테이션 정리 !
📜 참고 - JUnit 5 User Guide
📕 JUnit 5 Annotations
어노테이션 | 설명 |
---|---|
@Test | 해당 메소드가 테스트 메소드임을 표시. JUnit 4의 @Test 와 다르게 JUnit Jupiter 를 기반으로 동작하기때문에 따로 속성(Attributes) 을 표시하지 않음. 이 메소드는 오버라이딩 하지 않는 한 상속할 수 있다. |
@ParameterizedTest | 해당 메소드가 매개변수를 받는 테스트 메소드임을 나타냄. 오버라이딩 하지 않는 한 상속할 수 있음. |
@RepeatedTest | 해당 메소드가 반복 테스트를 위한 메소드임을 나타냄. 오버라이딩 하지 않는 한 상속할 수 있음 |
@TestFactory | 메소드가 동적 테스트를 위한 테스트 팩토리임을 나타냄. 오버라이딩 하지 않는 한 상속할 수 있음 |
@TestTemplate | @Test 의 묶음임을 표시한다. 이는 반드시 private 이나 static 이 아니어야 하며 void 를 반환해야 한다. 오버라이딩 하지 않는 한 상속할 수 있다. |
@TestMethodOrder | 테스트 메소드 실행 순서를 설정한다. JUnit 4의 @FixMethodOrder 와 유사하다. @TestMethodOrder 는 상속할 수 있다. |
@TestInstance | 테스트 메소드의 Life Cycle을 설정하는 데 사용한다. @TestInstance 는 상속할 수 있다. |
@DisplayName | 테스트 클래스나 테스트 메소드를 사용자가 지정한 이름으로 표시할 수 있다. @DisplayName 은 상속할 수 없다. |
@DisplayNameGeneration | @DisplayName 생성기를 선언한다. @DisplayNameGeneration 은 상속할 수 있다. |
@BeforeEach | @BeforeEach가 선언된 테스트 메소드는 각 @Test , @RepeatedTest , @ParameterizedTest , @TestFactory 가 선언된 테스트 메소드가 실행되기 전에 먼저 실행된다. JUnit 4의 @Before 와 유사하다. 이 메소드는 오버라이딩 하지 않는 한 상속할 수 있다. |
@AfterEach | @AfterEach가 선언된 테스트 메소드는 각 @Test , @RepeatedTest , @ParameterizedTest , @TestFactory 가 선언된 테스트 메소드가 실행되고 난 후에 실행된다. JUnit 4의 @After 와 유사하다. 이 메소드는 오버라이딩 하지 않는 한 상속할 수 있다 |
@BeforeAll | @BeforeAll이 선언된 테스트 메소드는 모든 @Test , @RepeatedTest , @ParameterizedTest , @TestFactory 가 선언된 메소드들이 실행되기 전에 최초에 한번 실행된다. JUnit 4의 @BeforeClass 와 유사하며, 이 메소드는 반드시 static 으로 선언되어야 한다. 이 메소드는 숨겨지거나 재정의되지 않는 한 반드시 상속된다. |
@AfterAll | @AfterAll이 선언된 테스트 메소드는 모든 @Test , @RepeatedTest , @ParameterizedTest , @TestFactory 가 선언된 메소드들이 끝난 후에 한번 실행된다. JUnit 4의 @AfterClass 와 유사하며, 이 메소드는 반드시 static 으로 선언되어야 한다. 이 메소드는 숨겨지거나 재정의되지 않는 한 반드시 상속된다. |
@Nested | @Nested가 선언된 클래스는 중첩된 비 정적(non-static) 테스트 클래스임을 나타낸다. 테스트 클래스 안에서 내부 클래스를 정의해 테스트를 계층화할 수 있다. 또한 내부 클래스를 사용하기 때문에 부모 클래스의 멤버에 접근할 수 있다. @BeforeAll 또는 @AfterAll 과 함께 사용할 수 없으며, 상속할 수 없다. |
@Tag | 테스트 필터링을 위한 태그를 선언하는 데 사용한다. JUnit 4의 @Categories 와 유사하다. 클래스 수준에서는 상속할 수 있으나, 메소드 수준에서는 상속할 수 없다. |
@Disabled | 테스트 클래스나 테스트 메소드를 비활성화하는 데 사용한다. JUnit 4의 @Ignore 와 유사하다. @Disabled 은 상속할 수 없다. |
@Timeout | @Test , @TestFactory , @TestTemplate 의 실행시간이 주어진 시간을 초과하는 경우의 Life Cycle을 관리할 수 있게 설정한다. @Timeout 은 상속할 수 있다. |
@ExtendWith | 확장을 선언하는데 사용한다. 다른 설정 파일의 설정을 가져올 수 있게 해준다. JUnit 4의 @RunWith 와 유사하다. |
@RegisterExtension | Used to register extensions programmatically via fields. Such fields are inherited unless they are shadowed. (뭘 말하고 싶은지 모르겠음) |
@TempDir | Used to supply a temporary directory via field injection or parameter injection in a lifecycle method or test method; located in the org.junit.jupiter.api.io package. (뭘 말하고 싶은지 모르겠음) |