我Test.Hspec.Wai.JSON
用来检查我的 api 端点的返回值。我注意到,每当我创建一个值为 的 json 时0.0
,当测试运行时,它会将其转换为0
(Int),如果 api 返回0.0
,则测试失败。
let j = [json|{"test":0.0}|]
request "GET" "some_url" [("Content-Type", "application/json")] ""
`shouldRespondWith` j {matchStatus = 200}
body mismatch:
expected: {"test":0} ---> this is the issue (0.0 has become 0)
but got: {"test":0.0}
我在 Haskell 中并没有那么先进,无法找出库代码中发生这种情况的位置。我查看了源代码Test.Hspec.Wai.JSON
,它似乎依赖于Aeson.QQ
所以不太确定问题的根源。这是Test.Hspec.Wai.JSON 源这是Aeson.QQ 源
因此,我的工作是编写一个FromJSON
实例来解析整个响应并检查填写的记录。这有点乏味。
关于库代码中导致此问题的任何建议?以及如何解决?
谢谢,