#automation #karate
#автоматизация #каратэ
Вопрос:
В ходе моего тестирования я хочу выполнить некоторую оценку объектов json в массиве. Пример выглядит следующим образом:
"sections": [
{
"internal_id": 10635,
"uuid": "a56357fa-fbe6-BARS-89d4-8e8fdbda18b0",
},
{
"internal_id": 10636,
"uuid": "33a4c634-BARS-4b20-ac3d-54370b32d989",
},
{
"internal_id": 10637,
"uuid": "99443ce8-5007-4ec2-BARS-b459df30d33b",
},
{
"internal_id": 10638,
"uuid": "4a54a868-1bfa-BAZZ-93b1-d95a4b529cdf",
}
]
Выполняя некоторую отладку, я сделал это:
* print typeof(sections[0])
=> возвращается сообщение object
Я пытался оценить отдельные объекты, выполняющие это:
* eval Object.keys(sections[0]).length;
=> это возвращается с TypeError: <object_at_index_0> is not an Object in <eval>
У меня нет большого опыта работы с JS, но может ли кто-нибудь помочь мне с этим?
Комментарии:
1. что вы хотите проверить из этого массива JSON??
2. @BabuSekaran весь ваш 🙂
3. @BabuSekaran, я хотел бы подтвердить, что длина объекта равна 2. Или, в основном, подтвердить, что каждый объект в массиве JSON имеет одинаковый размер. В моей отладке перед написанием утверждения это заставило меня задуматься о том, почему я не мог оценить объект, даже если тип был указан как объект
Ответ №1:
Вы можете написать ожидаемую схему для одного объекта JSON, а затем использовать match each
для проверки ее для всех данных в массиве JSON.
* def sectionArray =
"""
{
"sections": [
{
"internal_id": 10635,
"uuid": "a56357fa-fbe6-BARS-89d4-8e8fdbda18b0",
},
{
"internal_id": 10636,
"uuid": "33a4c634-BARS-4b20-ac3d-54370b32d989",
},
{
"internal_id": 10637,
"uuid": "99443ce8-5007-4ec2-BARS-b459df30d33b",
},
{
"internal_id": 10638,
"uuid": "4a54a868-1bfa-BAZZ-93b1-d95a4b529cdf",
}
]
}
"""
* match each sectionArray.sections == {"internal_id":"#present","uuid":"#present"}
Вы также можете проверить размер массива с помощью,
* match sectionArray.sections == "#[4]"
Обратитесь к нечеткому сопоставлению
Комментарии:
1. Хорошо, итак, насколько я понимаю, сопоставление для
"#present"
обоих ключей подтверждает, что это приведет к сбою, если есть ОДИН ключ или если на объект> 2 ключей?2. Каждый объект JSON должен точно иметь только ключ
internal_id
иuuid
, любой другой случай завершится неудачей.