我想从响应格式检查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”:false }, { “ roomTypeId”:“ c5730b9e-78d1-4c1c-a429-06ae279e6d4d”, “ status”:“ AVAILABLE”, “ propertyId”:“ dc00e77f-d6bb-4dd7-a8ea-dc33ee9675ad”, “价钱”: { “ baseAveragePrice”:104.71, “ discountedAveragePrice”:86.33 }, “ resortFee”:37, “ isComp”:false }
]
我试图从下面检查这一点;
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");
}
});
});
答案 0 :(得分:3)
您需要检查该属性是否存在。
使用have.property
语法,您可以做到这一点。
您可以阅读Postman API reference docs和Postman uses a fork of chai internally,因此ChaiJS docs should also help you.
更新的脚本:
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");
}
});
});