2017-09-20 7 views
3

特定の入力に対してエラーが発生する関数がある場合、その入力に対してエラーが発生したことを確認するテストを作成できますか?HUnitでエラーケースをアサートすることは可能ですか?

HUnitで利用可能な「アサートエラー」機能が見つかりません。 HUnitや他のテストパッケージでも利用できますか?

+2

'HUnit-Plus'パッケージは[' assertThrows'](HTTPSを提供します。 haskell.org/package/HUnit-Plus-2.0.0/docs/Test-HUnitPlus-Base.html#v:assertThrows)。 –

答えて

4

あなたがエラーをキャッチし、それが標準の例外処理を使用して行われない場合は主張することができます:// hackage:

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 
関連する問題