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. build.gradle(.kts)ファイルにtestタスクを追加します。

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

    ビルドスクリプトでuseJUnitPlatform()関数を使用すると、 kotlin-testライブラリは自動的にJUnit 5を依存関係として含めます。 この設定により、JVM専用プロジェクトおよびKotlin Multiplatform (KMP) プロジェクトのJVMテストで、 kotlin-test APIとともにすべてのJUnit 5 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. 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のテストソースファイルとリソースが含まれています。

    src/test/kotlinにテスト用の*.ktファイルを自分で作成することもできます。

  3. SampleTest.ktsum()関数のテストコードを追加します。

    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コマンドを使用して、コマンドラインインターフェース経由でプロジェクトのすべてのテストを実行することもできます。

  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

    テスト実行は失敗しました。

次のステップ

最初のテストを終えたら、以下を行うことができます。