-1

我想从响应格式中检查 status=AVAILABLE 那么 arrayElement 应该返回 roomTypeId 否则 roomTypeId 不应该返回其他状态。

[
    {
        "status": "SOLDOUT",
        "propertyId": "dc00e77f",
        "Fee": 0,
        "isComp": false
    },
    {
        "roomTypeId": "c5730b9e",
        "status": "AVAILABLE",
        "propertyId": "dc00e77f",
        "price": {
            "baseAveragePrice": 104.71,
            "discountedAveragePrice": 86.33
        },
        "Fee": 37,
        "isComp": false
    },
    
]

[ {“状态”:“售罄”,“propertyId”:“773000cc-468a-4d86-a38f-7ae78ecfa6aa”,“resortFee”:0,“isComp”:假},{“roomTypeId”:“c5730b9e-78d1-4c1c -a429-06ae279e6d4d”,“状态”:“可用”,“propertyId”:“dc00e77f-d6bb-4dd7-a8ea-dc33ee9675ad”,“价格”:{“baseAveragePrice”:104.71,“discountedAveragePrice”:86.33},“resortFee ": 37, "isComp": 假 },

]

我试图从下面检查这个;

pm.test("Verify if Status is SOLDOUT, roomTypeId and price information is not returned ", () => {
    var jsonData = pm.response.json();
    jsonData.forEach(function(arrayElement) {
      if (arrayElement.status == "SOLDOUT") 
              { 
                 pm.expect(arrayElement).to.not.include("roomTypeId");
              }
              else if (arrayElement.status == "AVAILABLE") 
              { 
                 pm.expect(arrayElement).to.include("roomTypeId");
              }
          });
});

4

1 回答 1

3

您需要检查该属性是否存在。

使用have.property语法,您可以做到这一点。

您可以阅读Postman API 参考文档,并且Postman 在内部使用 chai 的一个分支,因此ChaiJS 文档也应该对您有所帮助。

更新脚本:

pm.test("Verify if Status is SOLDOUT, roomTypeId and price information is not returned ", () => {
    var jsonData = pm.response.json();
    jsonData.forEach(function(arrayElement) {
        if (arrayElement.status === "SOLDOUT") {
            pm.expect(arrayElement).to.not.have.property("roomTypeId");
        } else if (arrayElement.status === "AVAILABLE") {
            pm.expect(arrayElement).to.have.property("roomTypeId");
        }
    });
});
于 2019-05-10T04:53:34.353 回答