mhe*_*rzl 5 error-handling haskell hunit
如果我有一个函数会导致某个输入出现错误,是否可以编写一个测试来验证该输入是否发生了错误?
我在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
Run Code Online (Sandbox Code Playgroud)