본문 바로가기

JUnit5

(3)
[JUnit] Dynamic Tests * JUnit5 사용 1. Dynamic Test란? * @Test 주석이 달린 표준 테스트는 컴파일 시간에 정의되는 static 한 테스트이다. * Dynamic Test는 런타임 중에 생성되는 테스트 * @TestFactory 주석이 달린 팩토리 메소드에 의해 생성 * 팩토리 메소드는 DynamicTest 인스턴스의 Stream, Collection, Iterator를 반환해야 함 * @BeforeEach / @AfterEach 와 같은 생명주기 관련 어노테이션을 지원하지 않음 2. Dynamic Test 예제 * @TestFactory method는 dynamic test라는 것을 명시해준다. * dynamic test는 컬렉션을 반환함 * 이름, 실행 두 부분으로 나뉨 @TestFactory fu..
[JUnit] 객체 타입 체크 * JUnit5 사용 * 반환된 객체의 타입을 체크해야할 경우가 있다. 1. 시나리오 * 나뭇잎 타입에따라 나무를 분류한다. * 올바른 유형을 반환하는지 검사할 필요가 있다. class TestClass { fun sortTree(name: String): Tree { val deciduous = listOf("Beech", "Birch", "Ash", "Whitebeam", "Hornbeam", "Hazel & Willow") val evergreen = listOf("Cedar", "Holly", "Laurel", "Olive", "Pine") return if(deciduous.contains(name)) { Deciduous(name) } else if(evergreen.contains(name)..
[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 @Be..