스프링 부트 2.2+ 버전부터 기본으로 JUnit5 의존성이 추가되었다.
Test 코드가 public이 아니여도 된다.
Platform : 테스트를 실행해주는 런처 제공. TestEngineAPI 제공
Jupiter : TestEngineAPI 구현체로 JUnit5를 제공
Vintage : JUnit4와 3을 지원하는 TestEngine 구현체
- @Test
- 테스트를 실행한다.
@Test void create1() { //given final Study study = new Study(); //then assertNotNull(study); System.out.println("create1"); }
- @BeforeAll
- 모든 Test가 시작하기 전에 딱 1번만 호출된다.
- static 메소드로 사용해야 한다.(default 가능)
- 리턴 타입이 존재해서는 안된다.
@BeforeAll static void beforeAll() { System.out.println("beforeAll"); }
- @AfterAll :
- 모든 Test가 실행된 이후에 딱 1번만 호출된다.
- static 메소드로 사용해야 한다.(default 가능)
- 리턴 타입이 존재해서는 안된다.
@AfterAll static void afterAll() { System.out.println("afterAll"); }
- @BeforeEach
- 각각의 테스트가 실행되기 이전에 호출된다.
@BeforeEach void beforeEach() { System.out.println("beforeEach"); }
- @AfterEach
- 각각의 테스트가 실행된 이후에 호출된다.
@AfterEach void afterEach() { System.out.println("afterEach"); }
- @Disabled
- 해당 테스트를 실행하지 않는다.
@Test @Disabled void create2() { //given System.out.println("create2"); }
- Method와 Class 레퍼런스를 사용해서 테스트의 이름을 표기하는 방법 설정
- 기본 구현체로 ReplaceUnderscores 제공
// 모든 테스트 이름의 언더바가 사라지도록 설정
@DisplayNameGeneration(DisplayNameGenerator.ReplaceUnderscores.class)
class StudyTest {
@Test
void create1_this_underscore_maybe_delete() {
//given
final Study study = new Study();
//then
assertNotNull(study);
System.out.println("create1");
}
- 어떤 테스트인지 테스트 이름을 보다 쉽게 표현할 수 있는 방법을 제공하는 애노테이션
- @DisplayNameGeneration 보다 우선 순위가 높다.
- @DisplayNameGeneration 보다 @DisplayName을 쓰는 것을 권장한다.
@Test
@DisplayName("테스트 제목 만들기 \uD83D\uDE31")
void create1_this_underscore_maybe_delete() {
//given
final Study study = new Study();
//then
assertNotNull(study);
System.out.println("create1");
}
cf) 이모지도 사용 가능하다.