어제 오늘 내일

[JUnit5] TestInfo.getDisplayName() 사용 가이드 본문

IT/JUnit

[JUnit5] TestInfo.getDisplayName() 사용 가이드

hi.anna 2026. 1. 20. 01:15

1. TestInfo란 무엇인가

TestInfo는 JUnit5에서 테스트 실행 중 테스트 이름, 디스플레이 네임, 태그 등 메타데이터를 제공하는 객체이다.
각 테스트 메서드에 파라미터로 주입할 수 있으며, 테스트 문서화·로그 출력·조건 처리 등에 활용하기 좋다.

이 중 getDisplayName()은 테스트의 표시용 이름(Display Name) 을 가져오는 메서드로, @DisplayName과 함께 사용하면 테스트 가독성을 크게 높일 수 있다.

 

2. getDisplayName() 기본 사용 예제

import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.TestInfo;

class DisplayNameTest {

    @Test
    @DisplayName("사용자 등록 성공 시 메시지 반환")
    void testUserRegister(TestInfo testInfo) {
        System.out.println("실행 중인 테스트 이름: " + testInfo.getDisplayName());
        // 실제 테스트 코드
    }
}

설명

  • testInfo.getDisplayName()은 @DisplayName에 설정된 값을 반환한다.
  • @DisplayName이 없을 경우 메서드 이름이 자동으로 반환된다.

출력 예:

실행 중인 테스트 이름: 사용자 등록 성공 시 메시지 반환

 

3. @DisplayName이 없을 때 getDisplayName() 값 확인

@Test
void defaultDisplayName(TestInfo testInfo) {
    System.out.println(testInfo.getDisplayName());
}

설명

  • @DisplayName을 지정하지 않았다면 기본적으로 메서드 이름이 그대로 출력된다.
    예: defaultDisplayName(TestInfo)

 

4. getDisplayName()을 활용한 테스트 로그 포맷팅

테스트 실행 중 어떤 테스트가 어디까지 수행되었는지 명확히 로깅할 수 있다.

@Test
@DisplayName("주문 생성 로직 테스트")
void logTestName(TestInfo testInfo) {
    String name = testInfo.getDisplayName();
    System.out.println("[START] " + name);

    // 테스트 수행
    // ...

    System.out.println("[END] " + name);
}

활용 포인트

  • 테스트 진행 순서 확인
  • CI 환경에서 테스트 가독성 향상
  • 실패 시 어떤 테스트인지 로그로 빠르게 파악 가능

 

5. getDisplayName()을 테스트 반복(Repetition)과 함께 사용하기

반복 테스트에서는 RepetitionInfo와 함께 사용할 때 특히 유용하다.

import org.junit.jupiter.api.RepeatedTest;
import org.junit.jupiter.api.RepetitionInfo;

class RepeatTest {

    @RepeatedTest(3)
    @DisplayName("반복 테스트 예제")
    void repeated(TestInfo testInfo, RepetitionInfo repetitionInfo) {
        System.out.println(
            testInfo.getDisplayName() + " - " + repetitionInfo.getCurrentRepetition()
        );
    }
}

설명

  • 반복될 때마다 동일한 디스플레이 네임을 기반으로 반복 번호를 함께 출력할 수 있다.
  • 테스트 보고서 확인이나 로그 분석에 유리하다.

 

6. getDisplayName() 사용 시 유용한 패턴 정리

  • 테스트 이름을 기반으로 조건 분기
  • 테스트 실행 시작·종료 로깅
  • 테스트 문서화 용도로 활용
  • @DisplayName과 조합하여 더 직관적인 테스트 흐름 작성

특히 팀 단위 테스트 환경에서는 테스트 이름으로 로깅을 통일해두면 디버깅이 훨씬 쉬워진다.

 

반응형
Comments