Каратэ-DSL не возвращает ответ в заказе - PullRequest
0 голосов
/ 23 декабря 2018

Предположим, что у меня есть конечная точка GET, и результат выглядит следующим образом:

[
  {
    "id": 42,
    "studentName": "John",
    "alternateName1": "",
    "alternateName2": "",
    "code": "NS2",
    "year": 2019
  },
  {
    "id": 41,
    "studentName": "John",
    "alternateName1": "",
    "alternateName2": "",
    "code": "NS1",
    "year": 2019
  },
  {
    "id": 1,
    "studentName": "Tom",
    "alternateName1": "",
    "alternateName2": "",
    "code": "NS2",
    "year": 2019
  }
]

Ответ не возвращается в порядке, основанном на идентификаторе или имени .... поэтому при выполнении сопоставлениячтобы сравнить его с результатом соответствующего запроса в базе данных, получается «FAILED».Попробуйте некоторые инструменты, такие как Postman, чтобы проверить порядок, он следует «id» и такой же, как и обычный SQL-запрос.

Кроме того, следуйте и настраивайте функцию js 'sort-array.feature' для сортировки ответа, но тип ответа является массивом;таким образом, это не работает.

Я хотел бы знать, как мы обрабатываем порядок ответа на основе настроенных значений (например,: id) или значения по умолчанию (например, «name»), как в моемслучай или любой подход для сравнения результата конечной точки API (фактический результат) с результатом запроса (ожидаемый результат)

Большое спасибо.

1 Ответ

0 голосов
/ 23 декабря 2018

Пожалуйста, прочитайте документы и примеры и особенно обратите внимание на contains.Ниже я привожу один пример, остальное - домашнее задание для вас (особенно если вам так нравится Почтальон: P).Вставьте его в новый сценарий и убедитесь, что он работает.

* def response =
"""
[
  {
    "id": 42,
    "studentName": "John",
    "alternateName1": "",
    "alternateName2": "",
    "code": "NS2",
    "year": 2019
  },
  {
    "id": 41,
    "studentName": "John",
    "alternateName1": "",
    "alternateName2": "",
    "code": "NS1",
    "year": 2019
  },
  {
    "id": 1,
    "studentName": "Tom",
    "alternateName1": "",
    "alternateName2": "",
    "code": "NS2",
    "year": 2019
  }
]
"""
* match response[*].id contains only [1, 41, 42]

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...