1
failDetails (" details: " ++ baz a) $
a `shouldBe` 2
그리고 나는 그것이의 라인을 따라 뭔가를 인쇄하고 싶은이 :
expected: 2
but got: 3
details: ...
failDetails (" details: " ++ baz a) $
a `shouldBe` 2
그리고 나는 그것이의 라인을 따라 뭔가를 인쇄하고 싶은이 :
expected: 2
but got: 3
details: ...
네, 가능합니다 것 같다 :
import Control.Exception
import Test.HUnit.Lang (HUnitFailure(..))
failDetails details assert = do
assert `catch` \(HUnitFailure loc msg) -> do
throw $ HUnitFailure loc $ msg ++ "\n" ++ details
우리는 shouldBe
에 의해 던져진 예외를 catch, 메시지를 수정하고 그것을 다시 던지십시오. 우리가 정의하는 경우
1 `shouldBe` 2
$> failDetails "foobar"
:
는우리는 심지어 그것을 좋아 사용할 수 있습니다
($>) = flip ($)
infixl 0 $>
{-# INLINE ($>) #-}