Используя REST Гарантированный, как я могу проверить, присутствует ли поле в массиве объектов типа json ответа? - PullRequest
0 голосов
/ 08 января 2019

Мне нужно проверить, что ответ, подобный приведенному ниже, содержит несколько полей. Меня не интересует значение полей - просто ключи существуют. Например, я хочу проверить, присутствует ли ключ «id» в ответе этого типа. Как бы я этого достиг?

[  
   {  
      "id":"1",
      "title":"Title",
      "details":"details",
      "benefit":"Welcome",
      "expirationTimestamp":1549995900,
      "notice":"some text",     
   }
]

Если я делаю

given()
  .spec(reqSpec).
when()
  .get().
then()
  .body("$", hasKey("id"));

Я получаю сообщение об ошибке:

java.lang.AssertionError: 1 expectation failed.
JSON path $ doesn't match.
Expected: map containing ["id"->ANYTHING]
  Actual: [{blabla=something, id=1, details=details, etc=etc}]

Пожалуйста, кто-нибудь может объяснить мне, как это должно работать?

1 Ответ

0 голосов
/ 08 января 2019

Попробуйте это:

given()
  .spec(reqSpec).
when()
  .get().
then()
  .body("[0]", hasKey("id"));

Groovy GPath используется в программе Ass Assured. Вы можете взглянуть на их руководство здесь

Также есть хороший учебник здесь

...