概要
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)