我在邮递员Tests
标签中运行脚本时收到错误,当我尝试检查某个属性不是null
时。
我的JSON回复:
{
"statusMessage": "Success",
"timeStamp": "2018-01-23 05:13:16.7",
"numberOfRecords": 7,
"parties": [
{
"shippingAddress": null,
"shippingDetails": null,
"paExpirationDate": "",
"historyDate": "01/22/2018",
"renewal": {
"renewalRx": "N",
"priorRxNumber": "",
"priorSB": "",
"priorFillNumber": ""
},
"noOfRefillingRemaining": "1",
"ndc": "00074-3799-06",
"rxId": "7004942",
"fillingNumber": "0"
},
{
"shippingAddress": {
"addressLine1": "2150 St",
"addressLine2": "Home Line 2",
"city": "Bronx",
"state": "NY",
"zipCode": "10453",
"addressSeqNumber": "1",
"medFacilityIndicator": "N"
}
}
]
}
我的邮递员脚本是:
var jsonData = JSON.parse(responseBody);
var parties = jsonData.parties;
parties.forEach(function(data){
if(data.shippingAddress!==null && data.shippingAddress.addressLine1 !== null ){
postman.setEnvironmentVariable("addressLine1",data.shippingAddress.addressLine1);
}
我收到以下错误:
"Error running tests for results: TypeError: Cannot read property 'addressLine1' of null"
答案 0 :(得分:1)
你可以试试这个,我稍微修改了你的代码但是这样可以工作:
var parties = pm.response.json().parties
for(i = 0; i < parties.length; i++) {
if(parties[i].shippingAddress !== null) {
pm.environment.set("addressLine1", parties[i].shippingAddress.addressLine1)
}
}
我在本地使用您提供的Schema进行了测试,并将2150 St
写入了我的环境文件。
您发布的架构似乎并不完整,我认为 parties
数组的shippingAddress
属性为{{1}或者它是一个包含null
详细信息的对象 - 我可能错了,但我无法理解您发布的数据。
我不认为你在shippingAddress
语句中搜索的内容是正确的,并且它不会按照你的方式工作,因为如果第一个条件为null(就像你的回复数据一样)它不会满足第二个条件,因为对象不会出现在那里,而if
引用总会显示错误。
或者你可以像这样使用你的代码:
shippingAddress.addressLine1