본문 바로가기

IT/TDD & Test

[JUnit] JUnit에서 현재 실행 중인 테스트 이름 가지고 오기

반응형

* JUnit5 사용

* TestInfo 객체를 테스트에 주입 가능

 

1. 개별 테스트

@Test
fun givenNumbers_whenOddCheck_thenVerify1(testInfo: TestInfo) {
    println("displayName = " + testInfo.displayName)
    val number = 5
    assertTrue(TestClass().oddCheck(number))
}

* 테스트 이름을 표시하기 위해 인터페이스 TestInfo의 displayName 프로퍼티를 사용

displayName = givenNumbers_whenOddCheck_thenVerify1(TestInfo)

 

2. Parameterized 테스트

var testInfo: TestInfo? = null

@BeforeEach
fun init(testInfo: TestInfo) {
    this.testInfo = testInfo
}

@ParameterizedTest(name = "givenNumbers_whenOddCheck_thenVerify{0}")
@ValueSource(ints =[1, 3, 5, -3, 15])
fun givenNumbers_whenOddCheck_thenVerify2(number: Int) {
    println("displayName = " + testInfo!!.displayName)
    assertTrue(TestClass().oddCheck(number))
}

* 개별 테스트와는 달리 TestInfo 객체를 함수에 주입할수 없음

* 문제를 해결하기 위해 beforeEach 기능을 사용해서 클래스 필드에 TestInfo를 설정 해야함

displayName = givenNumbers_whenOddCheck_thenVerify1
displayName = givenNumbers_whenOddCheck_thenVerify3
displayName = givenNumbers_whenOddCheck_thenVerify5
displayName = givenNumbers_whenOddCheck_thenVerify-3
displayName = givenNumbers_whenOddCheck_thenVerify15

 

소스코드

* https://github.com/vljh246v/TIL/blob/main/etc/junit/src/test/kotlin/com/demo/junit/day20220725/TestClassTest.kt

 

GitHub - vljh246v/TIL: Today I learned

Today I learned. Contribute to vljh246v/TIL development by creating an account on GitHub.

github.com

출처

* https://www.baeldung.com/junit-get-name-of-currently-executing-test

반응형

'IT > TDD & Test' 카테고리의 다른 글

[JUnit] 파일 & 리소스 (/src/test/resources) 가져오기  (0) 2022.08.01
[JUnit] Dynamic Tests  (0) 2022.07.30
[JUnit] 객체 타입 체크  (0) 2022.07.26
RestClientTest를 알아보자~  (0) 2021.03.27
Controller Test를 해보자~!  (0) 2021.03.21