在给定的响应代码段中,“ parentName”类型有时为null
或有时为string
。如何一次检查/编写测试用例以同时检查string
和null
的类型。
tests["Verify parentName is string"] = typeof(jsonData.parentName) === "string" || null;
tests["Verify parentName is string"] = typeof(jsonData.parentName) === "string" || "null";
"demo": [
{
"id": 68214,
"specializationId": 286,
"name": "Radiology",
"parentName": null,
"primary": true
}
],
如何处理邮递员中的这种情况(空和字符串)。
答案 0 :(得分:0)
我不建议在Postman测试案例中使用 if elseif 。 Postman具有用于模式检查的内置功能,您可以使用它,并且可以达到相同的结果。
首先,我正在考虑以下作为回应:
{
"demo": [{
"id": 68214,
"specializationId": 286,
"name": "Radiology",
"parentName": null,
"primary": true
}]
}
邮递员测试应该是:
var Ajv = require('ajv'),
ajv = new Ajv({logger: console}),
schema = {
"properties": {
"parentName": {
"type":["string", "null"]
}
}
};
pm.test('Verify parentName is string', function() {
var resParentName = pm.response.json().demo[0].parentName;
pm.expect(ajv.validate(schema, {parentName: resParentName})).to.be.true;
});
编辑:验证完整的响应,而不仅仅是第一项。同时检查响应中是否包含parentName
。
var Ajv = require('ajv'),
ajv = new Ajv({logger: console}),
schema = {
"properties": {
"demo":{
"type": "array",
"items": {
"properties": {
"id":{ "type": "integer" },
"specializationId":{ "type": "integer" },
"name":{"type": "string"},
"parentName":{
"type":["string", "null"]
},
"primary":{"type": "boolean"}
},
"required": [ "parentName"]
}
}
}
};
pm.test('Validate response', function() {
pm.expect(ajv.validate(schema, pm.response.json())).to.be.true;
});