Каратэ содержит и все ключевые значения не совпадают с ошибкой - PullRequest
0 голосов
/ 10 января 2019

Я пытаюсь изучать каратэ, но у меня есть проблема, и я не могу решить ее самостоятельно.

Так что моя особенность выглядит довольно просто:

Feature: Alerting get the list of all alerts
  Background:
    * url 'url'

  Scenario: Retrieve all alerts

    Given path '5c348c553a892c000bb1f2dd'
    When method get
    Then status 200
    And match response contains {id: 5c348c553a892c000bb1f2dd}

Дело в том, чтобы получить ответ и убедиться, что указанный идентификатор находится в списке. Насколько я понимаю, это ключевое слово документация должно искать только для данной фразы, но я получаю ошибку: причина: все значения ключей не совпадают

Это вывод моей консоли:

allAlertsGet.feature:10 - path: $, actual: {data={name=Baelish of Harrenhal, user=griffin, id=5c348c553a892c000bb1f2dd, tags=["Gared"], triggers={prometheus=[{"js_id":"Qarth","labels":["Harry Potter and the Sorcerer's Stone"],"operator":"==","query":"up","value":"1"}]}, trigger_interval=398s, receivers={slack=[{"holdoffTime":"0s","id":"Stalls","message":"Dark and difficult times lie ahead. Soon we must all face the choice between what is right and what is easy.","revokeMessage":"Every flight begins with a fall.","token":"Buckbeak"}]}, hold_cap=4, max_cap=16, factor=2, createDate=1546947669, triggered_date=1546948867, mute_until=0, muted=false, status=3}}, expected: {id=5c348c553a892c000bb1f2dd}, reason: all key-values did not match

Что я пропустил? Я использую каратэ 0.9.0.

1 Ответ

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

Обратите внимание на вложенную структуру вашего JSON. Вы можете вставить этот фрагмент в Scenario и попробовать его, это совет - вы можете экспериментировать быстро, не отправляя HTTP-запросы вроде этого:

* def response = { data: { name: 'Baelish of Harrenhal', user: 'griffin', id: '5c348c553a892c000bb1f2dd' } }
* match response.data contains { id: '5c348c553a892c000bb1f2dd' }

РЕДАКТИРОВАТЬ: просто, чтобы показать несколько других способов сделать утверждения:

* match response.data.id == '5c348c553a892c000bb1f2dd'
* match response..id contains '5c348c553a892c000bb1f2dd'

* def id = { id: '5c348c553a892c000bb1f2dd' }
* match response == { data: '#(^id)' }
* match response contains { data: '#(^id)' }
...