Kotest 例外(Exceptions)
Kotlin の例外を検証するアサーションについて説明する。
例外
Kotest には、例外を検証するためのアサーションがいくつか用意されている。
shouldThrow を使うと、ブロックが指定した型の例外をスローすることを検証できる。
shouldThrow<IllegalArgumentException> {
// IllegalArgumentException をスローするコード
}
例外を受け取り、内容を検証することもできる。
val exception = shouldThrow<IllegalArgumentException> {
// IllegalArgumentException をスローするコード
}
exception.message shouldBe "expected message"
shouldThrow<T> は、スローされた例外が T のサブタイプである場合にも成功する。厳密に同じ例外型であることを確認したい場合は、shouldThrowExactly を使用する。
shouldThrowExactly<IllegalArgumentException> {
// 正確に IllegalArgumentException をスローするコード
}
何らかの例外がスローされることだけを確認したい場合は、shouldThrowAny を使用する。
shouldThrowAny {
// 任意の Throwable をスローするコード
}