我正在编写此全局函数,以使用期望的消息来断言这些字段,并传递字段和ExpectedMessage作为参数。
postman.setEnvironmentVariable("errorMessages", () => {
var assertFieldErrorMessage = (field,expectedMessage) => {
if (responseBody.has("data")) {
pm.expect(pm.response.json().data.fieldErrors.get(field)).to.include(expectedMessage);
}
};
return {
myPackage: {
assertFieldErrorMessage
}
};
这就是我从测试脚本中调用函数的方式
let errorMessages = eval(environment.errorMessages)();
errorMessages.myPackage.assertFieldErrorMessage("email","Invalid value");
这是响应主体的样子:
"data": {
"globalErrors": [],
"fieldErrors": {
"email": [
"Invalid value for - "
]
}
}
很难在不对它们进行硬编码的情况下声明fieldErrors中的字段。 怎么了?
答案 0 :(得分:0)
使用:
pm.expect(pm.response.json().data.fieldErrors[field]).to.include(expectedMessage);
代替:
pm.expect(pm.response.json().data.fieldErrors.get(field)).to.include(expectedMessage);