Skip to content

使用 JUnit 在 JVM 中测试代码 – 教程

本教程向你展示如何在 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'
   }

:::

  1. test 任务添加到 build.gradle(.kts) 文件中:

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

:::

NOTE

如果你在构建脚本中使用 useJUnitPlatform() 函数,

kotlin-test 库会自动将 JUnit 5 作为依赖项包含进来。

此设置允许在仅限 JVM 的项目和 Kotlin Multiplatform (KMP) 项目的 JVM 测试中,

访问所有 JUnit 5 API 以及 kotlin-test 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. 创建 Sample 类,其中包含将两个整数相加的 sum() 函数:

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

创建测试

  1. 在 IntelliJ IDEA 中,针对 Sample 类选择 Code | Generate | Test...

    生成测试

  2. 指定测试类的名称。例如,SampleTest

    创建测试

    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. 使用行号旁边的图标运行测试:

    运行测试

    NOTE

    你还可以通过命令行界面使用 ./gradlew check 命令运行所有项目测试。

  2. Run 工具窗口中检查结果:

    检查测试结果。测试已成功通过

    测试函数已成功执行。

  3. 通过将 expected 变量值更改为 43,确保测试工作正常:

    kotlin
    @Test
    fun testSum() {
        val expected = 43
        assertEquals(expected, classForTesting.sum(40, 2))
    }
  4. 再次运行测试并检查结果:

    检查测试结果。测试已失败

    测试执行失败。

接下来

完成第一次测试后,你可以: