是否可以断言 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
如果我有一个函数导致某个输入出错,是否可以编写一个测试来验证该输入发生错误?
我发现 "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