【问题标题】:expected false to deeply equal true on postman期望 false 在邮递员上完全等于 true
【发布时间】:2020-08-19 04:52:57
【问题描述】:

我正在尝试编写一个测试来确认"Active": true 并且正在苦苦挣扎。提前为草率的代码道歉。这是我尝试过的,我得到了"AssertionError: expected false to deeply equal true"

这是我收到的代码和响应正文。

var jsonData = pm.response.json();
for (i of jsonData.resources) {
var found = false;
var serviceID = pm.environment.get("serviceID");
for (i of jsonData.resources) {
    if (i.ID == serviceID) {
        if (i.Active == "true") {
            found = true;
            break;
        }
    }
}
pm.expect(found).to.be.eql(true);
}

【问题讨论】:

  • 请将您的回复正文作为文本包含在内,以便将来用户可以搜索。
  • 您在循环变量 i 上缺少 const 声明(两次 - 或者实际上您需要在内部循环中使用不同的变量名)
  • 你为什么循环for (i of jsonData.resources)两次?!

标签: javascript postman


【解决方案1】:

您正在检查 i.Active == "true",但您的数据将 i.Active 显示为布尔值,而不是字符串 (true !== 'true')。

改为检查布尔值:

if (i.Active === true) {
  found = true;
  break;
}

【讨论】:

  • 太棒了,我真的很感激。谢谢。
【解决方案2】:

这样的事情将适用于您正在尝试做的事情:

let jsonData = pm.response.json(),
     serviceID = pm.environment.get("serviceID");

_.each(jsonData.resources, (item) => {
    if (item.ID === serviceID) {
        pm.expect(item.Active).to.be.true
    }
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-12
    相关资源
    最近更新 更多