코틀린 환경에서 JUnit 프레임웍을 사용한 테스팅
Kotlin 유닛 테스트 환경을 설정하기 위해서는 일반적으로 JUnit 프레임웍을 사용한다. JUnit 프레임웍은 JUnit4와 JUnit5를 모두 사용할 수 있고, 아직 많은 회사들에서 JUnit4를 사용하고 있지만 이번 글에서는 JUnit5를 사용해 개발환경을 설정하는 방법에 대해 다룬다.
프로젝트에 JUnit5 의존성 설정하기
프로젝트에 JUnit5에 대한 의존성을 설정하기 위해서는 build.gradle.kts 스크립트를 다음과 같이 바꿔야 한다. JUnit5를 사용하려면 dependencies 블록의 junit-jupiter-api을 testImplementation을 사용해 컴파일 시간의 의존성을 설정하고, testRuntimeOnly를 사용해 런타임 의존성으로 junit-jupiter-engine을 설정해야 한다. 글 작성 시간 기준으로 이 둘의 모든 최신 버전은 5.10.0으로 다음과 같이 설정한다.
dependencies {
// JUnit5 테스트 프레임워크
testImplementation("org.junit.jupiter:junit-jupiter-api:5.10.0")
testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.10.0")
}
// JUnit5을 사용하기 위한 옵션 추가
tasks.test {
useJUnitPlatform()
}
또한 그 아래 생소한 스크립트가 하나 더 있다. useJUnitPlatform() JUnit Platform을 사용하도록 설정하는 스크립트인데, 이를 그레이들 tasks에의 test 에 대해 실행하도록 만들어 모든 테스트 실행 시 JUnit Platform을 사용하도록 만들어야 한다. 이전 JUnit4를 사용할 때는 이것이 필요하지 않았지만, JUnit5로 넘어오면서 추가되었다.
이렇게 의존성을 설정한 후 그레이들을 동기화 시키면, JUnit5를 사용하기 위한 준비가 완료된다.
간단한 테스트 작성해보기
이제 모든 작업이 마무리 되었으므로 간단한 테스트를 작성해보자. 테스트를 위한 라이브러리를 사용하기 위해 테스트 파일은 꼭 src/test 디렉토리 하위에 작성되어야 한다. 아래와 같은 SimpleTest를 src/test/kotlin 하위에 만들어보자.
import org.junit.jupiter.api.Assertions.assertEquals
import org.junit.jupiter.api.Test
class SimpleTest {
@Test
fun `one plus one is two`() {
assertEquals(2, 1 + 1)
}
}
이 테스트는 1더하기 1을 실행했을 때 기댓값이 2인지를 확인하는 작업을 하는 테스트로, 테스트를 실행해보기 위해 작성된 의미 없는 테스트이다. 이 테스트를 실행하려면 다음과 같이 실행을 원하는 테스트의 왼쪽 재생 버튼을 누른 후 Run 버튼을 누르면 된다.
그러면 테스트가 실행되며, Tests passed 문구를 확인할 수 있다.
정리
여기까지 JUnit5에 대한 테스트 환경을 설정하고, 간단한 테스트를 작성하는 방법에 대해 알아보았다. 이어서 JUnit5를 사용해 다양한 유닛 테스트를 작성하는 방법에 대해 다루도록 한다.