Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将null数据类型和number数据类型集成到我的模式中?_Javascript_Json_Testing_Automated Tests_Postman - Fatal编程技术网

Javascript 如何将null数据类型和number数据类型集成到我的模式中?

Javascript 如何将null数据类型和number数据类型集成到我的模式中?,javascript,json,testing,automated-tests,postman,Javascript,Json,Testing,Automated Tests,Postman,我编写了一个模式,发现EventId响应返回为数字或null,但乍一看,我认为响应只是数字,但我错了,它们都是错误的,如下所示: AssertionError:无效类型:null(预期数字):预期false等于true 如何在模式中容纳这两种数据类型,即number或null 架构如下: tests['Status code is 200'] = pm.response.to.have.status(200); const schema = { "definitions": {}, "$

我编写了一个模式,发现EventId响应返回为数字或null,但乍一看,我认为响应只是数字,但我错了,它们都是错误的,如下所示: AssertionError:无效类型:null(预期数字):预期false等于true

如何在模式中容纳这两种数据类型,即number或null

架构如下:

tests['Status code is 200'] = pm.response.to.have.status(200);
const schema =
{
  "definitions": {},
  "$schema": "http://json-schema.org/draft-06/schema#",
  "$id": "http://example.com/root.json",
  "type": "array",
  "items": {
    "$id": "#/items",
    "type": "object",
    "required": [
      "RequestId",
      "FleetGroupId",
      "RecorderId",
      "Status",
      "DateRaised",
      "DateRaisedString",
      "DateRaisedISO",
      "RequestedTime",
      "RequestedTimeString",
      "RequestedTimeISO",
      "EventId",
      "AlertLevel",
      "Media",
      "MediaList"
    ],
    "properties": {
      "RequestId": {
        "$id": "#/items/properties/RequestId",
        "type": "number"
      },
      "FleetGroupId": {
        "$id": "#/items/properties/FleetGroupId",
        "type": "number"
      },
      "RecorderId": {
        "$id": "#/items/properties/RecorderId",
        "type": "string",
        "pattern": "^(.*)$"
      },
      "Status": {
        "$id": "#/items/properties/Status",
        "type": "string",
        "pattern": "^(.*)$"
      },
      "DateRaised": {
        "$id": "#/items/properties/DateRaised",
        "type": "string",
        "pattern": "^(.*)$"
      },
      "DateRaisedString": {
        "$id": "#/items/properties/DateRaisedString",
        "type": "string",
        "pattern": "^(.*)$"
      },
      "DateRaisedISO": {
        "$id": "#/items/properties/DateRaisedISO",
        "type": "string",
        "pattern": "^(.*)$"
      },
      "RequestedTime": {
        "$id": "#/items/properties/RequestedTime",
        "type": "string",
        "pattern": "^(.*)$"
      },
      "RequestedTimeString": {
        "$id": "#/items/properties/RequestedTimeString",
        "type": "string",
        "pattern": "^(.*)$"
      },
      "RequestedTimeISO": {
        "$id": "#/items/properties/RequestedTimeISO",
        "type": "string",
        "pattern": "^(.*)$"
      },
      "EventId": {
        "$id": "#/items/properties/EventId",
        "type": "number"
      },
      "AlertLevel": {
        "$id": "#/items/properties/AlertLevel",
        "type": "string",
        "pattern": "^(.*)$"
      },
      "Media": {
        "$id": "#/items/properties/Media",
        "type": "object",
        "required": [
          "Time",
          "TimeString",
          "TimeISOString",
          "ContentType",
          "MediaUrl",
          "JsonUrl",
          "ChannelId"
        ],
        "properties": {
          "Time": {
            "$id": "#/items/properties/Media/properties/Time",
            "type": "string",
            "pattern": "^(.*)$"
          },
          "TimeString": {
            "$id": "#/items/properties/Media/properties/TimeString",
            "type": "string",
            "pattern": "^(.*)$"
          },
          "TimeISOString": {
            "$id": "#/items/properties/Media/properties/TimeISOString",
            "type": "string",
            "pattern": "^(.*)$"
          },
          "ContentType": {
            "$id": "#/items/properties/Media/properties/ContentType",
            "type": "string",
            "pattern": "^(.*)$"
          },
          "MediaUrl": {
            "$id": "#/items/properties/Media/properties/MediaUrl",
            "type": "string",
            "pattern": "^(.*)$"
          },
          "JsonUrl": {
            "$id": "#/items/properties/Media/properties/JsonUrl",
            "type": "string",
            "pattern": "^(.*)$"
          },
          "ChannelId": {
            "$id": "#/items/properties/Media/properties/ChannelId",
            "type": "number"
          }
        }
      },
      "MediaList": {
        "$id": "#/items/properties/MediaList",
        "type": "array",
        "items": {
          "$id": "#/items/properties/MediaList/items",
          "type": "object",
          "required": [
            "Time",
            "TimeString",
            "TimeISOString",
            "ContentType",
            "MediaUrl",
            "JsonUrl",
            "ChannelId"
          ],
          "properties": {
            "Time": {
              "$id": "#/items/properties/MediaList/items/properties/Time",
              "type": "string",
              "pattern": "^(.*)$"
            },
            "TimeString": {
              "$id": "#/items/properties/MediaList/items/properties/TimeString",
              "type": "string",
              "pattern": "^(.*)$"
            },
            "TimeISOString": {
              "$id": "#/items/properties/MediaList/items/properties/TimeISOString",
              "type": "string",
              "pattern": "^(.*)$"
            },
            "ContentType": {
              "$id": "#/items/properties/MediaList/items/properties/ContentType",
              "type": "string",
              "pattern": "^(.*)$"
            },
            "MediaUrl": {
              "$id": "#/items/properties/MediaList/items/properties/MediaUrl",
              "type": "string",
              "pattern": "^(.*)$"
            },
            "JsonUrl": {
              "$id": "#/items/properties/MediaList/items/properties/JsonUrl",
              "type": "string",
              "pattern": "^(.*)$"
            },
            "ChannelId": {
              "$id": "#/items/properties/MediaList/items/properties/ChannelId",
              "type": "number"
            }
          }
        }
      }
    }
  }
};

 pm.test('Schema is valid', function() {
 var response = pm.response.json();
   var result = tv4.validateResult(response, schema, false, true);
 pm.expect(result.valid).to.equal(true, result.valid ? null : result.error.message);
});
我现在做了一些研究,似乎你可以有多种数据类型,只需编辑你的类型,例如

"type": ["number", "null"]
但我似乎仍然得到相同的错误断言error:Invalid type:null(预期对象):expected false等于true..因此我想我需要代码来告诉我的模式number或null是可以接受的,但是如何做呢?

AssertionError: Invalid type: null (expected object): expected false to equal true
声明您正在返回
null
,其中您的架构验证需要
对象
。如果空响应有效,则需要对此进行说明

"type": ["object","null"]