問題タブ [pact]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
pact - 協定。URL で自動生成された ID を使用して REST GET をテストする方法
UUID で識別される特定のエンティティの詳細を返す REST サービスをテストしたい、つまり、私の消費者協定には、次のような GET を要求する相互作用があります。
/都市/123e4567-e89b-12d3-a456-426655440000
したがって、協定検証者がそれを見つけるために、この特定のレコードがデータベースに存在する必要があります。他のプロジェクトでは、状態セットアップで SQL INSERT を実行してこれを達成しましたが、この場合、データ モデルが非常に複雑であり、これらのユーティリティを使用すると節約できるため、DB へのアクセスにマイクロサービスの JPA ユーティリティを使用することをお勧めします。私は多くの努力をして、テストをより保守しやすくしました。
問題は、これらのユーティリティでは、新しいレコードを作成するときに識別子を指定できないことです (自動 ID が割り当てられます)。そのため、(状態セットアップで) エンティティを作成した後、消費者契約で指定された ID ではなく、生成された ID を使用するように契約検証者に伝えたいと思います。
私の知る限り、この特定の ID を受け取るにはマイクロサービスが必要なため、ここでは Pact マッチング手法は役に立ちません。検証者がサービスの呼び出しで使用する正しい ID を認識する方法はありますか?
arrays - groovy を使用して文字列の配列に一致する応答本文を含む Pact ファイルを生成する方法
私は Pact も groovy も初めてです。
プロバイダーに渡す Pact を書きたいと思います。
プロバイダーは、指定されたリクエストに対して、 のような 文字列の配列で応答する必要があります["foo", "bar", "foobar"]
。
これが私の作業状態です。これは必要な部分に取り除かれていますが、まだ実行可能です:
このテストでは、次の pact ファイルが生成されます。
Pact ファイルは、プロバイダーが常に次のように応答することを期待しています。["foo", "bar", "foobar"]
私が欲しいのは、文字列の汎用配列です。
次のことを試すと:
生成された Pact ファイルは次のようになります。
matchingRules があり、これは良さそうです。しかし、ルート レベルにオブジェクトがあり、配列をルートにする必要があります。
配列をルート要素として取得し、値ではなく型で一致する文字列を取得する方法はありますか?