是否可以断言 HUnit 中的错误案例?

Is it possible to assert an error case in HUnit?

如果我有一个函数导致某个输入出错,是否可以编写一个测试来验证该输入发生错误?

我发现 "assert error" 功能在 HUnit 中不可用。它在 HUnit 中可用还是在其他一些测试包中可用?

您可以使用标准异常处理捕获错误并断言它是否未发生:

errored <- catch (somethingThatErrors >> pure False) handler
if errored then
    assertFailure "Did not catch expected error"
else
    pure ()
where
   handler :: ErrorCall -> IO Bool
   handler _ = pure True