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 をスローするコード
}

参照