我有一个正在测试的API,我期望responseBody
是一个Json对象(以“ {”开头)。但是,可能由于意外事件,响应可能作为数组返回(以“ [”开头)。
如何使用Postman测试确定responseBody
的类型(数组或对象)?
到目前为止,我拥有的最好的是: 当需要一个对象(不是数组)时
var bodyJson = pm.response.json();
tests["Response should not be an array"] = !(bodyJson instanceof Array);
答案 0 :(得分:2)
您可以使用:
pm.test('is an Array', () => pm.expect(pm.response.json()).to.be.an('array').but.not.an('object'))
取自Chaijs-内置于本地Postman应用程序中。
答案 1 :(得分:1)
例如,您具有以下json
{
"testA": [1, 2],
"testB": {"a": "b"}
}
您可以使用Array.isArray()
var bodyJson = pm.response.json();
tests["Response should not be an array"] = !Array.isArray(bodyJson['testA']); // false
//tests["Response should not be an array"] = !Array.isArray(bodyJson['testB']); // true
或
var bodyJson = pm.response.json();
pm.test("is Array Test", function() {
var notArray = !Array.isArray(bodyJson.testA) // false
// var notArray = !Array.isArray(bodyJson.testB) // true
pm.expect(notArray).to.eql(true);;
});