kotlin-testで例外のテスト #Kotlin

概要

KotlinのUnitTestはSpekで書いており、Assertion Frameworkはkotlin-testを使ってる。

kotlin-testで例外発生のテストをAssertする。

例外の発生をテストする

  • assertFailsを使えばOK
assertFails { someMethod(invalidArg) }

発生した例外の型をテストする

  • assertFailsWithを使えば発生する例外の型もチェックできる
// IllegalArgument以外の例外発生時はテストがコケる
assertFailsWith<IllegalArgumentException> { someMethod(invalidArg) }

例外のメッセージをテストする

  • assertFailsもassertFailsWithも発生した例外を返してくれる
val throwable = assertFails { someMethod(invalidArg) }
val exception = assertFailsWith<IllegalArgumentException> { someMethod(invalidArg) }

// 中身のテスト
assertEquals("不正な引数です", throwable.message)
assertEquals("不正な引数です", exception.message)

参考

kotlin.test - Kotlin Programming Language