JUnit5 - 소개 및 기본 애노테이션, 테스트 이름 표시하기

현시기얌·2021년 8월 22일
0

JUnit5

목록 보기
1/8

소개

in SpringBoot

스프링 부트 2.2+ 버전부터 기본으로 JUnit5 의존성이 추가되었다.

JUnit4와 다른점

Test 코드가 public이 아니여도 된다.

Platform : 테스트를 실행해주는 런처 제공. TestEngineAPI 제공
Jupiter : TestEngineAPI 구현체로 JUnit5를 제공
Vintage : JUnit4와 3을 지원하는 TestEngine 구현체

JUnit5 기본 애노테이션

  • @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");
    }

실행 결과 :

JUnit5 : 테스트 이름 표시하기

@DisplayNameGeneration

  • 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");
    }

실행결과

@DisplayName

  • 어떤 테스트인지 테스트 이름을 보다 쉽게 표현할 수 있는 방법을 제공하는 애노테이션
  • @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) 이모지도 사용 가능하다.

실행결과

profile
현시깁니다

0개의 댓글