2

我正在尝试验证我返回的数据是否合理。验证数据类型已完成。现在我想验证我是否已收到执行任务所需的所有数据。

这是一个有代表性的例子:

{
  "things": [
    {
      "id": "00fb60c7-520e-4228-96c7-13a1f7a82749",
      "name": "Thing 1",
      "url": "https://lolagons.com"
    },
    {
      "id": "709b85a3-98be-4c02-85a5-e3f007ce4bbf",
      "name": "Thing 2",
      "url": "https://lolfacts.com"
    }
  ],
  "layouts": {
    "sections": [
       {
          "id": "34f10988-bb3d-4c38-86ce-ed819cb6daee",
          "name": "Section 1",
          "content:" [
             {
               "type": 2,
               "id": "00fb60c7-520e-4228-96c7-13a1f7a82749" //Ref to Thing 1
             }
          ]
       }
     ]
  }
}

因此,每个部分都引用了 0+ 个事物,我想验证id在部分内容中返回的每个值也作为id事物中的一个存在。

Object.assert(..)的文档暗示我需要一个具体的参考。即使我在 Object.keys 或 Array.items 中进行验证,我也无法解析另一端的引用。

这并不重要,但我的上下文是我正在IcedFrisby(一个 Frisby.js 分支)中验证 HTTP 响应。

4

1 回答 1

0

这在我问的方式中并不能真正解决(即使用 Joi)。

我通过为 icedfrisby 编写一个插件(在 npm 上发布)为我的上下文解决了这个问题,该插件使用jsonpath 来获取 Content 中的每个id内容和idThings 中的每个内容。然后插件将断言所有第一个集合都存在于第二个集合中。

于 2017-08-22T10:33:25.403 回答