在 JVM 中使用 JUnit 測試程式碼 – 教程
本教程將示範如何在 Kotlin/JVM 專案中編寫一個簡單的單元測試,並使用 Gradle 建置工具執行它。
在此專案中,您將使用 kotlin.test
函式庫,並使用 JUnit 執行測試。 如果您正在開發多平台應用程式,請參閱 Kotlin 多平台教程。
若要開始,請先下載並安裝最新版本的 IntelliJ IDEA。
新增依賴項
在 IntelliJ IDEA 中開啟一個 Kotlin 專案。如果您還沒有專案,請建立一個。
開啟
build.gradle(.kts)
檔案,並檢查testImplementation
依賴項是否存在。這個依賴項讓您可以使用kotlin.test
和JUnit
:
dependencies {
// 其他依賴項。
testImplementation(kotlin("test"))
}
dependencies {
// 其他依賴項。
testImplementation 'org.jetbrains.kotlin:kotlin-test'
}
:::
將
test
任務新增至build.gradle(.kts)
檔案:
tasks.test {
useJUnitPlatform()
}
test {
useJUnitPlatform()
}
:::
NOTE
如果您在建置腳本中使用 useJUnitPlatform()
函式,kotlin-test
函式庫會自動包含 JUnit 5 作為依賴項。此設定讓您可以在僅限 JVM 的專案和 Kotlin 多平台 (KMP) 專案的 JVM 測試中,存取所有 JUnit 5 API 以及 kotlin-test
API。
這是 build.gradle.kts
的完整程式碼:
plugins {
kotlin("jvm") version "2.1.21"
}
group = "org.example"
version = "1.0-SNAPSHOT"
repositories {
mavenCentral()
}
dependencies {
testImplementation(kotlin("test"))
}
tasks.test {
useJUnitPlatform()
}
新增測試程式碼
開啟
src/main/kotlin
中的Main.kt
檔案。src
目錄包含 Kotlin 原始碼檔案和資源。Main.kt
檔案包含印出Hello, World!
的範例程式碼。建立包含
sum()
函式的Sample
類別,該函式將兩個整數相加:kotlinclass Sample() { fun sum(a: Int, b: Int): Int { return a + b } }
建立測試
在 IntelliJ IDEA 中,針對
Sample
類別選擇 Code | Generate | Test...:指定測試類別的名稱。例如,
SampleTest
:IntelliJ IDEA 會在
test
目錄中建立SampleTest.kt
檔案。此目錄包含 Kotlin 測試原始碼檔案和資源。NOTE
您也可以在
src/test/kotlin
中手動建立一個*.kt
檔案用於測試。在
SampleTest.kt
中新增針對sum()
函式的測試程式碼:- 定義
testSum()
測試函式,並使用@Test
註解。 - 使用
assertEquals()
函式檢查sum()
函式是否返回預期值。
kotlinimport 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)) } }
- 定義
執行測試
使用邊緣圖示執行測試:
NOTE
您也可以透過命令列介面使用
./gradlew check
命令執行所有專案測試。在 Run 工具視窗中檢查結果:
測試函式已成功執行。
透過將
expected
變數的值更改為 43,確保測試正常運作:kotlin@Test fun testSum() { val expected = 43 assertEquals(expected, classForTesting.sum(40, 2)) }
再次執行測試並檢查結果:
測試執行失敗。
後續步驟
完成第一個測試後,您可以:
- 編寫更多測試,使用其他
kotlin.test
函式。例如,使用assertNotEquals()
函式。 - 使用 Kotlin Power-assert 編譯器外掛程式 改善您的測試輸出。該外掛程式會豐富測試輸出,提供上下文資訊。
- 使用 Kotlin 和 Spring Boot 建立您的第一個伺服器端應用程式。