期待通りのステップが動作していない「『パス』には含まれるべきである:」私は
Iを(キュウリの段階のため、事前に謝罪し、彼らがより良い流れるように公平なビットをクリーンアップする必要があります)安価なAPI用のテストスイートを作成するには、キュウリとrest-client、およびjson_specの宝石の組み合わせを使用しています。アプローチは、the Cucumber Bookで与えられたものと似ています。この場合、 '顧客'は開発者であるため、通常はキュウリのシナリオで表現するよりも、ビジネスの言語ははるかに技術的です。
私は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:'
このエラーを取得しています。このユーザーはエラーですか?別の手段を使用して、APIによって返されるJSONに期待されるkey:valueのペアが存在するかどうかを判断する必要がありますか?私は実際に宝石用のフィーチャーファイルでこの種の比較を行う例は見当たらないので、これが意図されたものでないかどうかは分かりません。
あなたは私たちにこのステップのステップ定義をしてください示しに「laserlemon」ありがとう? –
@RyanBiggこれはjson_spec gemの一部として自動的に定義されています。そのステップのコードを書く必要はありませんでした。明らかに、それは私がそれを使用していたものよりもはるかに多くの「断片的な」ビットのデータをjson内で見つけるように設計されていました。ライブラリから別のステップを適用することで問題が解決されました。私は、このことは、JSONの断片を比較するためにJSON解析などのトンで費やされていた時間の節約になると言うことができます。あなたがAPIテストにキュウリを使用している場合は、このことを確認することを強くお勧めしますでる! –