我的问题如下:
我发送了一个POST请求并收到了一条消息:
{ " errorCode":1000, " errorDescription":"帐户未经管理员验证!" }
此邮件已保存在名为" messageAccountIsnotVerified "
pm.test("test", function () { var jsonData = pm.response.json(); pm.expect(jsonData.errorCode).to.eql(1000); pm.expect(jsonData.errorDescription).to.eql("Account is not verified by Admin!"); });
但是当我尝试保存字符串文本时"管理员未验证帐户!" 在名为 messageAccountIsnotVerified 的变量中 并尝试进行相同的比较
pm.test("test", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.errorCode).to.eql(1000);
pm.expect(jsonData.errorDescription).to.eql("messageAccountIsnotVerified");
});
或
pm.test("test", function () {
var jsonData = pm.response.json();
var message = pm.environment.get("messageAccountIsnotVerified");
pm.expect(jsonData.errorCode).to.eql(1000);
pm.expect(jsonData.errorDescription).to.eql(message);
});
错误 错误 :
test | AssertionError: expected 'Account is not verified by Admin!' to deeply equal 'messageAccountIsnotVerified'
有人可以向我解释 1.什么是"非常平等"意思是 我错了什么 3.如何使用变量
来使用断言感谢任何提示
附加信息:我在比较电子邮件时遇到同样的问题 @签到另一条消息 - 所以我认为可能与特殊字符有关
答案 0 :(得分:3)
您需要以下列方式获取变量:
pm.expect(jsonData.errorDescription).to.deep.equal(pm.environment.get("messageAccountIsnotVerified"))
.to.deep.equal
可用于在嵌套对象中进一步引用某些内容。
在链中添加.deep以使用深度相等。有关深度相等算法的信息,请参阅deep-eql项目页面:https://github.com/chaijs/deep-eql。
查看您发布的{ "errorCode": 1000, "errorDescription": "Account is not verified by Admin!" }
的回复正文,我没有看到第一次测试的问题,但是要抱怨deep equal
,那么此回复可能与您发布的不完全相同
如果你愿意,你可以再次减少这一切:
pm.test("test", () => {
pm.expect(pm.response.json()).to.deep.equal({"errorCode": 1000, "errorDescription": "Account is not verified by Admin!"})
});
该测试将与上述相同。