JUnit 5에서 TestInfo
에서 JUnit 4의 TestName 규칙을 대체하는 역할을합니다.
설명서에서 :
TestInfo는 현재 테스트 또는 컨테이너에 대한 정보를 @Test, @RepeatedTest, @ParameterizedTest, @TestFactory, @BeforeEach, @AfterEach, @BeforeAll 및 @AfterAll 메소드에 주입하는 데 사용됩니다.
현재 실행 된 테스트의 메소드 이름을 검색하려면, 두 가지 옵션이 있습니다 : String TestInfo.getDisplayName()
및
Method TestInfo.getTestMethod()
.
TestInfo.getDisplayName()
테스트 방법의 기본 표시 이름이이므로 현재 테스트 방법의 이름 만 검색하는 것만으로는 충분하지 않을 수 있습니다 methodName(TypeArg1, TypeArg2, ... TypeArg3)
.
에 메소드 이름 복제@DisplayName("..")
하는 것은 좋은 생각이 아닙니다.
대안 TestInfo.getTestMethod()
으로 Optional<Method>
객체 를 반환 할 수 있습니다
.
검색 방법이 테스트 방법 내에서 사용되는 경우 Optional
랩핑 된 값 을 테스트 할 필요조차 없습니다 .
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.TestInfo;
import org.junit.jupiter.api.Test;
@Test
void doThat(TestInfo testInfo) throws Exception {
Assertions.assertEquals("doThat(TestInfo)",testInfo.getDisplayName());
Assertions.assertEquals("doThat",testInfo.getTestMethod().get().getName());
}