我正在使用返回以下数据的 GET 请求测试 API:
{
"Verified": true,
"VerifiedDate": 2018-10-08
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试测试第一个字段是否返回 true,并且第二个字段是否有值。我有以下代码:
pm.test("Verified should be true", function () {
var Status = pm.response.json();
pm.expect(Status.Verified).to.be.true;
});
pm.test("Returns a verified date", function () {
var Status = pm.response.json();
pm.expect(Status.VerifiedDate).to.not.eql(null);
});
Run Code Online (Sandbox Code Playgroud)
true 断言失败的原因如下:
经核实应该属实 | 断言错误:预期未定义为 true
为什么第一次测试失败?
我正在对 post 命令运行相同的测试,没有任何问题。
有任何想法吗?
谢谢
小智 6
根本原因: 您的结果是一个数组,但您的测试正在验证一个对象。因此,邮递员将抛出异常,因为它无法比较。
解决方案: 使用列表中某个项目的值与 if else 命令进行比较。
var arr = pm.response.json();
console.log(arr.length)
for (var i = 0; i < arr.length; i++)
{
if(arr[i].Verified === true){
pm.test("Verified should be true", function () {
pm.expect(arr[i].Verified).to.be.true;
});
}
if(arr[i].Verified === false){
pm.test("Verified should be false", function () {
pm.expect(arr[i].Verified).to.be.false;
});
}
}
Run Code Online (Sandbox Code Playgroud)
希望对您有帮助。
| 归档时间: |
|
| 查看次数: |
10876 次 |
| 最近记录: |