Ihm正在努力用HSpec实现一个看似简单的测试问题:我想测试一个函数
myFunc :: (Exception e) a -> Either e MyRecord在一个测试用例中,我想首先断言返回值是一个Right值,然后展开该值以断言其内容。我还没有想出一种方法来在没有繁琐的case表达式的情况下做到这一点。有没有同时允许模式匹配的断言操作符?
我正在寻找的是以下内容(伪Haskell):
describe "myFunc" $ do
it "should return funky stuff" $ do
let result = myFunc <testArgument>
result `shouldBe` (Right testRecord)
testRecord `shouldBe` <expectedRecord>这只是为了说明这个想法,当然,RHS上的模式匹配是不起作用的。
发布于 2021-05-03 04:52:59
在shouldSatisfy中使用自定义函数,如下所示:result `shouldSatisfy` either (const False) (<expectedRecord> ==)
https://stackoverflow.com/questions/67360841
复制相似问题