私は自分の開発組織内で機能/統合テストのために Cucumber を試験的に使用しており、API テスト用に提供される標準の接着剤で Citrus を使用しています。私が遭遇したハードルは、シナリオの変数を指定して REST URL を動的に変更する方法です。この機能は Java DSL に存在するようですが、Cucumber のステップでは公開されていません。システム プロパティのプレースホルダーを使用して citrus-http:client を構成できますが、Spring によってアプリケーション コンテキストが読み込まれるときにこれらを解決する必要があることは明らかです。バックグラウンド メッセージ定義でできるようにしたいことは、次のようなものです。
Given message todoListRequest
And <todoListRequest> header Content-Type is "application/json"
And <todoListRequest> header Accept is "application/json"
And <todoListRequest> uri is "/todo/${item-number}"
そしてシナリオで:
Scenario: Gets expected item for specified item number
Given variables
| item-number | 3 |
When <todoListClient> sends message <todoListRequest>
Then <todoListClient> should receive message <todoListResponse>
サービスのホスト名とポートは引き続きアプリケーション コンテキストで構成でき、構築された URI をその値に追加してメソッドのターゲットを作成できます (この場合は GET ですが、指定していませんが、それは別の必要があるかもしれません)。追加した?)。それは合理的に思えますか?明らかに、これに独自の接着剤を作成することもできますが、そのルートに進む前に、非常に明白な REST シナリオのように見える機能がすぐに提供されるかどうかを確認したかったのです。Cucumber の統合はかなり最近 (2.6 の時点で?) であることを理解しているため、まだ成熟している可能性があります。これは、歓迎されれば支援したい領域です...
ありがとう