私は現在、マイクロサービスアーキテクチャにkafkaを実装しているプロジェクトに取り組んでいます。 mSからkafkaへのトピックインタラクションのコントラクトテストケースの作成に成功しましたか?pact-jvmを使用してください。
私の実装は、microservice1がメッセージをRESTクライアントに公開し、クライアントがメッセージをKafkaトピックに投稿することです。 microservice2は、GETメソッドを使用してKafkaトピックからメッセージを取得します。
Pact-JVMは、何らかのメカニズム(通常はメッセージキュー)で(一方向に)消費されるメッセージをカプセル化するメッセージパクトをサポートします。アイデアは、コンシューマーコードがコンシューマーテストを介してメッセージを消費できることをテストし、プロバイダーが適切なメッセージを生成することを確認することです。実際のメッセージキューはテストでは使用されません。
これは元々、Kafkaメッセージキューを介して通信するマイクロサービスにコントラクトテストを適用するために開発されました。
テストは、要求/応答協定テストと同様に2つの部分で実行されますが、コンシューマーはコンシューマー協定テスト中にメッセージを読み取り、成功した場合は協定ファイルが書き込まれます。次に、プロバイダーコードが呼び出されてメッセージが生成され、それがpactファイルにあるものと比較されます。
Pact-JVMドキュメントの関連セクションは次のとおりです。