我想对返回复杂嵌套数据结构的函数进行单元测试,但我只对该结构的某些字段感兴趣。例如:
expectedResult = Right (
UserRecord {
name = "someName",
id = <don't care>
address = AddressRecord {
street = "someStreet",
id = <don't care>
}
}
)
有没有一种通用的方法来断言HSpec中上述形式的结果?也就是说,以某种方式编写表达式
result `shouldBe` expectedResult
我不需要具体说明预期结果中我不感兴趣的部分?我找到了这个答案,它需要复制从result
到expectedResult
的所有不在乎字段;这可能会变得相当乏味。也许有一种使用镜片的标准方法?或者一些我没听说过的带有断言助手的库?
一种简单的方法:
result `shouldSatisfy` a ->
name a == "someName" &&
street (address a) == "someStreet"