谁能帮助我,我几乎是邮递员的新手。
我的问题如下:
我发送一个 POST 请求并收到一条消息作为响应:
{ "errorCode": 1000, "errorDescription": "帐户未经管理员验证!" }
此消息已保存在名为“ messageAccountIsnotVerified ”的变量中
Run Code Online (Sandbox Code Playgroud)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");
});
Run Code Online (Sandbox Code Playgroud)
或者
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);
});
Run Code Online (Sandbox Code Playgroud)
它失败并出现错误:
test | AssertionError: expected 'Account is not verified by Admin!' to deeply equal 'messageAccountIsnotVerified'
Run Code Online (Sandbox Code Playgroud)
有人可以向我解释一下 1.“深度相等”是什么意思 2.我做错了什么 3.我如何通过使用变量来使用断言
感谢您的任何提示
只是附加信息:当我将电子邮件与另一条消息中的 @ 符号进行比较时,我遇到了同样的问题 - 所以我认为可能与特殊字符有关
您需要通过以下方式获取变量:
pm.expect(jsonData.errorDescription).to.deep.equal(pm.environment.get("messageAccountIsnotVerified"))
Run Code Online (Sandbox Code Playgroud)
.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!"})
});
Run Code Online (Sandbox Code Playgroud)
该测试的作用与上面相同。
| 归档时间: |
|
| 查看次数: |
8466 次 |
| 最近记录: |