JUnit 5 Annotations

JUnit 5 Annotations

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와 유사하다.
@RegisterExtensionUsed to register extensions programmatically via fields. Such fields are inherited unless they are shadowed. (뭘 말하고 싶은지 모르겠음)
@TempDirUsed 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. (뭘 말하고 싶은지 모르겠음)

 


© 2022. All rights reserved.