Получение значения объекта, который назван как массив - PullRequest
1 голос
/ 08 января 2020

Я пытаюсь написать тестовый скрипт в Postman, который должен проверить, что указанный c объект имеет какое-то значение. Тем не менее, объект назван как массив, и я не могу получить к нему доступ. Вот тело ответа, которое я получаю:

{
    "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]" , но это также не работает с волхвами c. Есть идеи?

1 Ответ

0 голосов
/ 09 января 2020

заменить

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");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...