2016-10-06 6 views
1

私たちはSpringブートプロジェクトでプレーンSpring AMQPを使用しています。Spring Cloud ContractとプレーンSpring AMQP

メッセージコンシューマが実際のメッセージに対してテストを行い、静的テストメッセージに対してテストを行わないようにする必要があります。

したがって、私たちのプロデューサはテスト段階でメッセージスニペットを生成することができます。このスニペットは、コンシューマテストによってピックアップされ、最新のメッセージバージョンに対してテストされ、プロデューサの変更がコンシューマを破るかどうかを確認できます。

正確にはSpring Cloud Contractのようです。それでは、Springのクラウド契約とSpringのamqpを統合する方法はありますか?どの方向へ行くべきかのヒントは高く評価されます。

答えて

4

実際にはサポートしていませんが、自分で設定することができます。自動生成されたテストでは、メッセージを送受信するインターフェイスを使用していますので、 spring-amqpを使用する独自のクラスを実装できます。消費者側(スタブランナー)も同様です。あなたが行う必要があるのは、プロデューサとコンシューマの両方に org.springframework.cloud.contract.verifier.messaging.MessageVerifierのBeanを実装して登録することです。これは、自動生成されたテストで何をしているのかが原因でうまくいくはずです。@Inject MessageVerifier あなた自身のBeanを登録すると動作します。

UPDATE: @Mathiasがそれを言及したように、AMQPサポートは春クラウド契約https://cloud.spring.io/spring-cloud-contract/spring-cloud-contract.html#_stub_runner_spring_amqp

+0

であり、すでに感謝マルチンです - あなたのヒントや、生成試験の一つを見て、それが私のためにクリック製 - と私は思います私は今、統合を実装しようとすることができます - 少し小さいようです。 –

+0

恐ろしい!それが動作するかどうかを見てみましょう:私たちはこれを答えとしてマークできますか? –

+1

その間、私はspring-amqp統合をspring-cloud-contractに追加しました。それで、すぐに使用できるようになりました。https://cloud.spring.io/spring-cloud-contract/spring-cloud-contract.html#_stub_runner_spring_amqp –