首页 > 解决方案 > 获取像数组一样命名的对象的值

问题描述

我正在尝试在 Postman 中编写一个测试脚本,以验证特定对象是否具有某些价值。但是,该对象被命名为数组,我无法访问它。这是我收到的响应正文:

{
    "errors": {
        "[0].EntityType": [
            "'Entity Type' has a range of values which does not include '2'.",
            "Entity Type must be in enum values"
        ]
    }
}

所以我试图访问这个“[0].EntityType”对象中的数据,例如:

pm.test("Entity Type must be in enum", function () {
    var jsonData = pm.response.json();

    pm.expect(jsonData.errors.[0].EntityType[1]).to.eql("Entity Type must be in enum values");
});

你可以猜到,它不起作用。你们对我应该如何处理这个有什么想法吗?

我试图通过创建一个具有正常命名的新变量(比如说“errorType”)来解决这个问题,我给它实际对象的值([0].EntityType[1])并在断言中更改它(比如jsonData.errors.errorType)。它没有用。我还尝试将对象放在 jsonData.errors 之类的引号中。"[0].EntityType[1]"但这也没有什么魔力。有任何想法吗?

标签: postman

解决方案


代替

pm.expect(jsonData.errors.[0].EntityType[1]).to.eql("Entity Type must be in enum values");

pm.expect(jsonData.errors["[0].EntityType"][1]).to.eql("Entity Type must be in enum values");

推荐阅读