当返回包含一个项的数组时,Postman测试无法测试数组
我有一个邮递员测试用例:当返回包含一个项的数组时,Postman测试无法测试数组,postman,Postman,我有一个邮递员测试用例: pm.test("Check for property of type null or array", function(){ var isNullOrArray = (property === null || typeof(property) === "array"); pm.expect(isNullOrArray, "property is of type " + typeof(prope
pm.test("Check for property of type null or array", function(){
var isNullOrArray = (property === null || typeof(property) === "array");
pm.expect(isNullOrArray, "property is of type " + typeof(property)).to.be.true;
});
不幸的是,当我模拟一个只返回一个项的数组的响应时,如下所示:
"property": [
{
"user_id": 1234,
"is_true": false
}
]
测试失败,在日志中我可以看到typeof(property)是一个对象
该测试似乎适用于数组中有多个项的其他响应。我的考试怎么了?
typeof(property)==“array”
是否可能?或者可能是因为数组中只有一个对象而无法识别该数组吗?请改用array.isArray,在javascript中,数组类型返回对象,因为在javascript中,除了基元类型之外,所有内容都是对象(意味着只有不可变的数据类型被视为非对象)
,数组不是原始数据类型,因此被视为对象
a = [1,2,3]
b =a
a[2] = 5
console.log(b)
您可以看到,更改“a”会更改“b”,因为它们是可变的,因此它是一个对象我不知道它是如何传递给其他响应的。您可以添加一个传递了它不应该传递的示例吗pass@PHide,你说得对,它总是失败。我一定是在想象这些通行证…@PHide,你真是太棒了!还感谢您对类型的解释@你能点击勾号接受答案吗
a = [1,2,3]
b =a
a[2] = 5
console.log(b)