(заранее извиняюсь за ступени огурца, их нужно немного почистить, чтобы они текли лучше)
Я использую комбинацию огурца вместе с rest-client и json_spec гемов для создания набора тестов для полноценного API.Подход аналогичен описанному в Книге огурцов Обратите внимание, что в этом случае, поскольку «клиент» является разработчиком, «язык бизнеса» гораздо более технический, чем вы обычно выражали бы в огурцеСценарии
У меня проблема с шагом огурца json_spec "Тогда JSON в" пути "должен включать:"
Мой сценарий выглядит следующим образом
Scenario Outline: GET to OR Packages for specific package uuid returns proper data
Given I create a request body from the following JSON data
"""
{
"package":
{
"name": "anothertestpackage",
"description": "This is a test, testing 4 5 6",
"package_type" : <package_type>,
"duration": 30,
"start_date": "2012-03-01T08:00:00Z"
}
}
"""
And I have the URI for a new: package made in: OR from the request body
When I make a: GET request to the URI for: my new package with no query string
Then the JSON at "package" should include:
"""
{
"name": "anothertestpackage",
"description": "This is a test, testing 4 5 6",
"package_type" : <package_type>,
"duration": 30,
"start_date": "2012-03-01T08:00:00Z"
}
"""
Examples:
| package_type |
| "IMPRESSIONS" |
| "CLICKS" |
| "LEADS" |
Исодержимое last_json похоже на то, что выполняется шаг Тогда
{
"package": {
"status": "NEW",
"account": {
"resource_uri": "/api/v0001/accounts/fecdbb85a3584ca59820a321c3c2767d"
},
"name": "anothertestpackage",
"package_type": "IMPRESSIONS",
"margin_goal": "0.5000",
"duration": 30,
"resource_uri": "/api/v0001/packages/fecdbb85a3584ca59820a321c3c2767d/feea333776c9454c92edab8e73628cbd",
"start_date": "2012-03-01T08:00:00Z",
"description": "This is a test, testing 4 5 6"
}
}
Я должен думать, что шаг пройдет, но вместо этого я получаю эту ошибку
Expected included JSON at path "package" (RSpec::Expectations::ExpectationNotMetError)
features\OR\API\OR_API_Packages.feature:70:in `Then the JSON at "package" should include:'
ЭтоНеясно, что эта ошибка говорит мне с точки зрения того, что не так.Это ошибка пользователя?я должен использовать другое средство, чтобы определить, присутствуют ли ожидаемые пары ключ: значение в JSON, возвращенном API?На самом деле я не вижу примеров такого сравнения в ваших файлах объектов для драгоценного камня, поэтому трудно понять, для чего это было не то, для чего предназначалось включение.