Skip to content

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

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

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

시작하려면 먼저 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'
   }

:::

  1. build.gradle(.kts) 파일에 test 태스크를 추가합니다.

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

:::

NOTE

빌드 스크립트에서 useJUnitPlatform() 함수를 사용하면 kotlin-test 라이브러리가 JUnit 5를 자동으로 의존성으로 포함합니다.

이 설정은 JVM 전용 프로젝트와 Kotlin 멀티플랫폼(KMP) 프로젝트의 JVM 테스트에서 kotlin-test API와 함께 모든 JUnit 5 API에 대한 접근을 가능하게 합니다.

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

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

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

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

    Create a test

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

    NOTE

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

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

    • @Test 어노테이션을 사용하여 테스트 testSum() 함수를 정의합니다.
    • assertEquals() 함수를 사용하여 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

    NOTE

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

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

    Check the test result. The test passed successfully

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

  3. expected 변수 값을 43으로 변경하여 테스트가 올바르게 작동하는지 확인합니다.

    kotlin
    @Test
    fun testSum() {
        val expected = 43
        assertEquals(expected, classForTesting.sum(40, 2))
    }
  4. 테스트를 다시 실행하고 결과를 확인합니다.

    Check the test result. The test has failed

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

다음 단계

첫 번째 테스트를 마쳤다면 다음을 수행할 수 있습니다.