リポジトリーに保管されているすべてのリクエストは、式を通じてアクセスできるため、他のリクエストまたはアサーションでそのコンポーネントを再利用できます。
ユースケース:
ここで/planets
リソースのCRUD(作成、読み取り、アップデート、削除)操作をテストしてみます。
/planets
にPOSTして惑星を作成する場合は、惑星が作成されていて利用可能であることを確認します。
以下を作成できます。
- 新しい惑星を投稿するリクエスト
[Create planet] (惑星を作成)
とプロジェクト[Star wars API] (スターウォーズAPI)
のシナリオ[Creation scenario] (シナリオを作成)
/planets/{planetId}
で作成された惑星を取得する最初のリクエストのレスポンスから作成された新しい惑星のIDを取得する2番目のリクエスト[Verify planet existence] (惑星の存在を確認)
。
最初のリクエストのレスポンスが以下のようになる場合:
{
"id": "9e5d2284-94ad-11e7-bbbc-773611cab8f7",
"name": "Tatooine",
"rotation_period": "23",
"orbital_period": "304",
"diameter": "10465",
"climate": "arid",
"gravity": "1 standard",
"terrain": "desert",
"population": "200000",
}
次に、https://my-star-wars-api.com/planets/${"Star wars API"."Creation scenario"."Create planet"."response"."body"."id"}
でGETを作成し、たとえばレスポンスコードの200をアサートして惑星が作成されたことをテストできます。
使用できるエレメント
リクエストは以下のように構成されます。
{
{request name}: {string},
"request": {
"method" : {string},
"uri" : {string},
"headers" : {
{header name} : {header value}
},
"query" : {
{query parameter name} : {query parameter value}
},
"body" : {string or object}
},
"response": {
"headers" : {object},
"status" : {
"message" : {string},
"code" : {number}
}
"body" : {string or object}
}
}
レスポンスには、リクエストの最後のコールに対するHTTPレスポンスを表すJSONオブジェクトが含まれています。
標準のJavaScriptオブジェクトをクエリーするのと同じ方法で、ドット表記を使用してクエリーを実行できます。
注: すべてのヘッダー名は小文字で、テキストボディのみ参照できます。
これは、Star-wars API
プロジェクトにあるGet planets
リクエストのエレメントを参照できることを意味します。
- リクエストURI:
${"Star-wars API"."Get planets"."request"."uri"}
- レスポンスステータスコード:
${"Star-wars API"."Get planets"."response"."status"."code"}
Content-type
レスポンスヘッダーの値:${"Star-wars API"."Get planets"."response"."headers"."Content-type"}
- レスポンスボディ属性
id
:${"Star-wars API"."Get planets"."response"."body"."id"}