Матч Строка json ответ массива для каждого элемента в каратэ - PullRequest
2 голосов
/ 10 января 2020

У меня есть API, который возвращает строку json массив в ответ следующим образом. В ответе есть и другие элементы.

"contacts": [
  "externaldeveloper1@exampledomain.com",
  "externa2developer1@exampledomain.com"
]

Теперь мне нужно сопоставить каждый элемент в этом массиве, чтобы проверить его значение.

В файле объектов:

When method POST
Then status 200
* match  response.contacts contains ['externaldeveloper1@exampledomain.com', externa2developer1@exampledomain.com]

Но я получаю синтаксическую ошибку:

match  response.contacts contains ['externaldeveloper1@exampledomain.com', externa2developer1@exampledomain.com]

Даже если я делаю assert response.contacts.[0] == 'externaldeveloper1@exampledomain.com', это также не удается. Любая помощь?

Ответы [ 2 ]

1 голос
/ 12 января 2020

Если ваш код каратэ

When method POST
Then status 200
* match  response.contacts contains ['externaldeveloper1@exampledomain.com', externa2developer1@exampledomain.com]

такой же, как вы используете в своем тесте, то синтаксическая ошибка заключается в том, что вы забыли поместить второе письмо в кавычки.

Исправить :

When method POST
Then status 200
* match  response.contacts contains ['externaldeveloper1@exampledomain.com', 'externa2developer1@exampledomain.com']

Причина сбоя

* assert response.contacts.[0] == 'externaldeveloper1@exampledomain.com'

проста. Точка после contacts слишком большая.

Правильно:

* assert response.contacts[0] == 'externaldeveloper1@exampledomain.com'
1 голос
/ 10 января 2020

У меня работает. У вас где-то должна быть какая-то опечатка или ошибка c.

* def response = { "contacts": [ "externaldeveloper1@exampledomain.com", "externa2developer1@exampledomain.com" ] }
* match response.contacts contains [ 'externaldeveloper1@exampledomain.com', 'externa2developer1@exampledomain.com' ]
* match response.contacts[1] == 'externa2developer1@exampledomain.com'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...