Skip to content

JVM에서 JUnit을 사용한 테스트 코드 – 튜토리얼

이 튜토리얼은 Kotlin/JVM 프로젝트에서 간단한 단위 테스트를 작성하고 Gradle 빌드 도구를 사용하여 실행하는 방법을 보여줍니다.

이 프로젝트에서는 kotlin.test 라이브러리를 사용하고 JUnit을 사용하여 테스트를 실행합니다. 멀티플랫폼 앱에서 작업하는 경우 Kotlin Multiplatform 튜토리얼을 참조하세요.

시작하려면 먼저 최신 버전의 IntelliJ IDEA를 다운로드하여 설치합니다.

의존성 추가

  1. IntelliJ IDEA에서 Kotlin 프로젝트를 엽니다. 프로젝트가 없다면, 새로 생성합니다.

  2. build.gradle(.kts) 파일을 열고 testImplementation 의존성이 있는지 확인합니다. 이 의존성은 kotlin.testJUnit과 함께 작업할 수 있도록 합니다.

    kotlin
    dependencies {
        // Other dependencies.
        testImplementation(kotlin("test"))
    }
    groovy
    dependencies {
        // Other dependencies.
        testImplementation 'org.jetbrains.kotlin:kotlin-test'
    }
  3. test 태스크를 build.gradle(.kts) 파일에 추가합니다.

    kotlin
    tasks.test {
        useJUnitPlatform()
    }
    groovy
    test {
        useJUnitPlatform()
    }

빌드 스크립트에서 useJUnitPlatform() 함수를 사용하면, kotlin-test 라이브러리가 JUnit 5를 자동으로 의존성으로 포함합니다. 이 설정은 JVM 전용 프로젝트와 Kotlin 멀티플랫폼(KMP) 프로젝트의 JVM 테스트에서 모든 JUnit 5 API와 kotlin-test API에 접근할 수 있도록 합니다.

다음은 build.gradle.kts의 전체 코드입니다.

kotlin
plugins {
    kotlin("jvm") version "2.2.10"
}

group = "org.example"
version = "1.0-SNAPSHOT"

repositories {
    mavenCentral()
}

dependencies {
    testImplementation(kotlin("test"))
}

tasks.test {
    useJUnitPlatform()
}

테스트할 코드 추가

  1. src/main/kotlin에 있는 Main.kt 파일을 엽니다.

    src 디렉터리에는 Kotlin 소스 파일과 리소스가 포함되어 있습니다. Main.kt 파일에는 Hello, World!를 출력하는 샘플 코드가 포함되어 있습니다.

  2. 두 정수를 더하는 sum() 함수를 가진 Sample 클래스를 생성합니다.

kotlin
class Sample() {
    fun sum(a: Int, b: Int): Int {
        return a + b
    }
}

테스트 생성

  1. IntelliJ IDEA에서 Sample 클래스에 대해 Code | Generate | **Test...**를 선택합니다.

Generate a test

  1. 테스트 클래스의 이름을 지정합니다. 예를 들어, SampleTest입니다.

Create a test

IntelliJ IDEA가 test 디렉터리에 SampleTest.kt 파일을 생성합니다. 이 디렉터리에는 Kotlin 테스트 소스 파일과 리소스가 포함되어 있습니다.

src/test/kotlin에 테스트용 *.kt 파일을 수동으로 생성할 수도 있습니다.

  1. SampleTest.kt 파일에 sum() 함수를 위한 테스트 코드를 추가합니다.

kotlin
import org.example.Sample
import org.junit.jupiter.api.Assertions.*
import kotlin.test.Test

class SampleTest {
    private val testSample: Sample = Sample()

    @Test
    fun testSum() {
        val expected = 42
        assertEquals(expected, testSample.sum(40, 2))
    }
}

테스트 실행

  1. 거터 아이콘을 사용하여 테스트를 실행합니다.

Run the test

./gradlew check 명령어를 사용하여 커맨드 라인 인터페이스를 통해 모든 프로젝트 테스트를 실행할 수도 있습니다.

  1. Run 도구 창에서 결과를 확인합니다.

Check the test result. The test passed successfully

테스트 함수가 성공적으로 실행되었습니다.

  1. expected 변수 값을 43으로 변경하여 테스트가 올바르게 작동하는지 확인합니다.
kotlin
@Test
fun testSum() {
    val expected = 43
    assertEquals(expected, classForTesting.sum(40, 2))
}
  1. 테스트를 다시 실행하고 결과를 확인합니다.

Check the test result. The test has failed

테스트 실행이 실패했습니다.

다음 단계

첫 번째 테스트를 완료한 후 다음을 수행할 수 있습니다.