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 {
       // その他の依存関係。
       testImplementation(kotlin("test"))
   }
groovy
   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 Multiplatform (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. 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ファイルをD手動で作成することもできます。

  3. SampleTest.ktファイルに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

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

次のステップ

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