JVMでJUnitを使ってテストコードを書く – チュートリアル
このチュートリアルでは、Kotlin/JVMプロジェクトでシンプルな単体テストを記述し、Gradleビルドツールを使って実行する方法を説明します。
このプロジェクトでは、kotlin.test
ライブラリを使用し、JUnitを使ってテストを実行します。 マルチプラットフォームアプリに取り組んでいる場合は、Kotlin Multiplatformチュートリアルを参照してください。
始めるには、まずIntelliJ IDEAの最新バージョンをダウンロードしてインストールしてください。
依存関係の追加
IntelliJ IDEAでKotlinプロジェクトを開きます。プロジェクトがない場合は、 作成してください。
build.gradle(.kts)
ファイルを開き、testImplementation
依存関係が存在することを確認します。 この依存関係により、kotlin.test
とJUnit
を扱うことができます。
dependencies {
// その他の依存関係。
testImplementation(kotlin("test"))
}
dependencies {
// その他の依存関係。
testImplementation 'org.jetbrains.kotlin:kotlin-test'
}
:::
build.gradle(.kts)
ファイルにtest
タスクを追加します。
tasks.test {
useJUnitPlatform()
}
test {
useJUnitPlatform()
}
:::
NOTE
ビルドスクリプトでuseJUnitPlatform()
関数を使用すると、
kotlin-test
ライブラリは自動的にJUnit 5を依存関係として含めます。
この設定により、JVM専用プロジェクトやKotlin Multiplatform (KMP)プロジェクトのJVMテストにおいて、
kotlin-test
APIとともにすべてのJUnit 5 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!
を出力するサンプルコードが含まれています。2つの整数を合計する
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
ファイルをD手動で作成することもできます。SampleTest.kt
ファイルにsum()
関数のテストコードを追加します。@Test
アノテーションを使って、テスト関数testSum()
を定義します。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コンパイラプラグインを使って、テスト出力を改善します。 このプラグインは、テスト出力にコンテキスト情報(contextual information)を付加します。
- KotlinとSpring Bootを使って、最初のサーバーサイドアプリケーションを作成します。