Postman API 测试:无法断言值是否为 true

the*_*boy 3 postman

我正在使用返回以下数据的 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)

希望对您有帮助。