0

私のクライアント コードでは、json スキーマを使用して json 応答を検証します ( ajvを使用)。契約テストのためにプロバイダーに対して実行する協定を生成するために、 pact-jsを使用することを計画しています。

クライアント コードがランタイム検証中に使用し、コントラクト テストが協定検証中に使用するスキーマについて、信頼できる唯一の情報源が必要です。pactファイルからjson(またはswagger)スキーマを生成する方法はありますか、または代わりに、個々のhttp応答のランタイム検証にpactファイル自体を使用するライブラリがあります(契約テストでの契約検証に使用されるだけではありません) ?

これは鶏が先か卵が先かという問題だと思います。なぜなら、最初にテスト実行の一部としてクライアント コードを実行して、協定 (そして json スキーマ) を生成する必要があるからです。そのためのワークフロー。

また、コントラクト テストによってランタイム検証の必要性が軽減されることも認識していますが、コントラクト テストはまだ、現実世界のすべてのシナリオを把握できるほど包括的ではありません。

4

1 に答える 1

0

簡単な答えはノーです。ただし、これに対処しようとする OSS ライブラリがいくつかあると思います (どれも公式ではありませんが、ある時点でこれがフォーラムに登場したことを思い出します)。

いずれにせよ、意図は良いのですが、私たちはその仕事が無駄だと信じています。2 つのテクノロジは補完的なものですが、時間の経過とともに進化することは間違いなく、管理がより困難になります。

いくつかの方法で Swagger との統合を検討することができます。たとえば、Atlassian のすばらしい人々がいくつか作成した [1][2] を参照してください。

[1] https://bitbucket.org/atlassian/swagger-request-validator

[2] https://bitbucket.org/atlassian/swagger-mock-validator

[3] https://github.com/pact-foundation/pact-specification/issues/28

于 2017-06-28T13:07:26.140 に答える