在 Yesod REST 服务的集成测试中,调用的 API 返回
{
"userId": "xxx"
}
其中xxx
是 MongoDB ObjectID(12 字节十六进制编码字符串)。
我想验证返回的 JSON 实际上是以这种形式使用aeson的。
有没有办法将 JSON 转换为规范形式,比如说
{
"userId": "-1"
}
如果userId
字段的值与给定的正则表达式匹配?
然后我可以使用assertEquals
将响应 JSON(实际)与预期值相匹配。
在Scala Lift JSON 库中,我可以执行以下操作:
val actual = json.transform {
case JField("userId", value)
if """[0-9a-f]{24}""".r.findFirstIn(value).isDefined =>
JField("userId", "-1")
}
埃森有类似的东西吗?