如何在 Kotlin 中测试预期的未检查异常?

Mar*_*ers 3 testing junit exception kotlin unchecked-exception

我正在尝试在 Kotlin 中编写一个测试,以确保在特定情况下抛出未经检查的异常。

我正在尝试这样使用org.junit.jupiter.api.Assertions.assertThrows

assertThrows(MyRuntimeException::class, Executable { myMethodThatThrowsThatException() })
Run Code Online (Sandbox Code Playgroud)

当我尝试这个时,我得到一个

类型推断失败编译器错误

因为我的Exceptionin not a CheckedExceptionbut a RuntimeException。有没有什么好方法来测试这种行为而不进行幼稚的尝试捕获?

yol*_*ole 7

您可以使用assertFailsWith从科特林标准库:

assertFailsWith<MyRuntimeException> { myMethodThatThrowsThatException() }
Run Code Online (Sandbox Code Playgroud)