function - postman 中的全局函数
问题描述
我正在编写这个全局函数来断言带有预期消息的字段,并将字段和预期消息作为参数传递。
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 中的字段。这有什么问题?
解决方案
利用:
pm.expect(pm.response.json().data.fieldErrors[field]).to.include(expectedMessage);
代替:
pm.expect(pm.response.json().data.fieldErrors.get(field)).to.include(expectedMessage);
推荐阅读
- google-apps-script - 基于动态和变化的源表创建静态概览表
- java - XSD 到 java bean
- mysql - 有没有更好的方法从 mysql 获取 ISO Ttimestamp?
- haskell - Haskell 实例包装 []
- android - 原因:org.gradle.api.internal.plugins.PluginApplicationException:无法应用插件 [id 'com.android.application']
- php - 如何使用 filepond 发送文件?
- c++ - 如何正确划分方阵?
- python - 一旦达到训练,Keras 就会保存最佳模型
- php - 使用codeigniter的多个过滤器,我只需要批准的产品?
- php - 将字符串的平面数组转换为关联数组