Kotest例外テスト(Testing Exceptions)
Kotestでの例外テストについて説明する。
Kotest例外テスト
Kotestを使うと、例外を簡単にテストできる。
package com.devkuma.kotest.tutorial.exceptions
import io.kotest.assertions.throwables.shouldNotThrow
import io.kotest.assertions.throwables.shouldThrow
import io.kotest.core.spec.style.FreeSpec
import io.kotest.matchers.shouldBe
class ExceptionTest : FreeSpec({
"例外発生テスト" - {
"例外が発生する場合" {
// 例外が発生するコードを実行し、その例外を捕捉する。
val errorProneFunction: () -> Unit = {
throw IllegalArgumentException("例外発生!")
}
val exception = shouldThrow<IllegalArgumentException> {
errorProneFunction()
}
// 期待した例外が発生した場合、テストを通過する。
exception.message shouldBe "例外発生!"
}
"例外が発生しない場合" {
// 例外が発生しないコードを実行し、例外が発生しないことを確認する。
val safeFunction: () -> Unit = {}
val exception = shouldNotThrow<IllegalArgumentException> {
safeFunction()
}
// 例外が発生しない場合、テストを通過する。
exception shouldBe null
}
}
})