使用Hspec编写嵌套断言



我很难用HSpec实现一个看似简单的测试问题:我想测试一个函数

myFunc :: (Exception e) a -> Either e MyRecord

在一个测试用例中,我想首先断言返回值是Right值,然后打开该值以断言其内容。如果没有繁琐的大小写表达式,我还没有找到实现这一点的方法。是否存在同时允许模式匹配的断言运算符?

我正在寻找的是沿着以下路线的东西(伪Haskell(:

describe "myFunc" $ do
it "should return funky stuff" $ do
let result = myFunc <testArgument>
result `shouldBe` (Right testRecord)
testRecord `shouldBe` <expectedRecord>

这只是为了说明这个想法,当然,RHS上的模式匹配不起作用。

使用shouldSatisfy的自定义函数,如下所示:result `shouldSatisfy` either (const False) (<expectedRecord> ==)

相关内容

  • 没有找到相关文章

最新更新