Утверждение Проблема ответа jsonpath - PullRequest
1 голос
/ 10 апреля 2019

Я пишу автоматизированные коды API-теста с помощью метода bdd от Karate.
Часть утверждения толкает меня сильно. Мой ответ как ниже, и когда я назвал этот путь $.data.subscribers[0].products, это дает мне массив пустых-нулей, как я проверил на сайте http://jsonpath.herokuapp.com/. Тем не менее, когда я запускаю функцию каратэ из корнишонов, она дает мне нулевой ответ, но все равно дает мне сообщение об ошибке. Это говорит актуально:

null, ожидается: null ...

Я не вижу никакой ошибки, как я могу это исправить? Это ошибка или есть какой-либо метод, чтобы справиться с этим?

Мой ответ:

{
  "meta": {
    "return_code": 0,
    "message": "success"
  },
  "data": {
    "sbs": [
      {
        "sbs_id": 32432432,
        "dt": "OTT",
        "pt": []
      },
      {
        "sbs_id": 455654445,
        "dt": "IPTV",
        "pt": []
      }
    ]
  }
}

JsonPath, который я написал:

$.data.sbs[0].pt[0]

Утверждение, которое дал каратэ:

com.intuit.karate.exception.KarateException: base-tvpp-cases.feature:316 
- path: $[0], actual: null, expected: null, reason: actual json-path does 
not exist

Gherkin-Karate - код, который я написал в файле функций: Я пробовал оба ниже

And match response.data.subscribers[0].products[0] == null
And match response.data.subscribers[0].products[0] == '#null'

1 Ответ

2 голосов
/ 10 апреля 2019

Просто используйте подстановочный знак JsonPath (.. или *). Обратите внимание, что при использовании группового символа - всегда будет массивом JSON. Вот ваше решение:

* match response.data..subscribers[0].products[0] == []
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...