Postman JSON 架构验证失败,如果在验证之前声明了 Object.prototype 函数
Postman JSON Schema Validation fails, if an Object.prototype function declared prior to the validation
我的邮递员集合中有一个架构验证测试,用于验证响应是否符合架构。我就是这样做的。
var schema =
{
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {....
}
pm.test("Schema Validation - TC001", function(){
pm.response.to.have.jsonSchema(schema);
});
当我只执行这个脚本时,它成功地验证了响应的模式。
但是,在我的邮递员集合中,我在模式验证之前使用 Object.prototype() 声明了一个全局函数,并且我将该函数称为 _.funcABC("a", "b","c")
Object.prototype.funcABC = function (var1, var2, var3) {
console.log("test");
}
而且,当我 运行 整个集合时,我的架构验证失败。
在进行故障排除时,我遇到了 this,这表明 Object.prototype 可能会干扰 JSONschema。
有没有办法克服 Object.prototype() 对 JSONschema 的这种干扰?到目前为止,我找不到可行的解决方案。
谢谢。
是什么阻止了你这样做:
pm.test('validate schema', function () {
let temp = Object.prototype.function1
delete Object.prototype.function1
pm.expect(ajv.validate(schema_response, response)).to.true;
Object.prototype.function1 = temp
})
我的邮递员集合中有一个架构验证测试,用于验证响应是否符合架构。我就是这样做的。
var schema =
{
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {....
}
pm.test("Schema Validation - TC001", function(){
pm.response.to.have.jsonSchema(schema);
});
当我只执行这个脚本时,它成功地验证了响应的模式。
但是,在我的邮递员集合中,我在模式验证之前使用 Object.prototype() 声明了一个全局函数,并且我将该函数称为 _.funcABC("a", "b","c")
Object.prototype.funcABC = function (var1, var2, var3) {
console.log("test");
}
而且,当我 运行 整个集合时,我的架构验证失败。
在进行故障排除时,我遇到了 this,这表明 Object.prototype 可能会干扰 JSONschema。
有没有办法克服 Object.prototype() 对 JSONschema 的这种干扰?到目前为止,我找不到可行的解决方案。
谢谢。
是什么阻止了你这样做:
pm.test('validate schema', function () {
let temp = Object.prototype.function1
delete Object.prototype.function1
pm.expect(ajv.validate(schema_response, response)).to.true;
Object.prototype.function1 = temp
})