プロデューサがメッセージ本文を変更した場合、コンシューマ側からの入力メッセージ契約をテストする方法がありますか。春クラウド契約テスト - 入力メッセージの検証
stubTrigger.trigger( "label")のみを使用します。消費者側からテストするが、プロデューサが入力メッセージ契約を変更した場合、消費者はそれをどのように知っているか?消費者テストケースは、プロデューサの変更が入力契約であっても常に私に合格しているようです。
プロデューサがメッセージ本文を変更した場合、コンシューマ側からの入力メッセージ契約をテストする方法がありますか。春クラウド契約テスト - 入力メッセージの検証
stubTrigger.trigger( "label")のみを使用します。消費者側からテストするが、プロデューサが入力メッセージ契約を変更した場合、消費者はそれをどのように知っているか?消費者テストケースは、プロデューサの変更が入力契約であっても常に私に合格しているようです。
私は、メッセージを受け取って別のアプリケーションに別のアプリケーションを送信する同期的な状況があることを理解していますか?それとも、それはあなたがメッセージを送って、別のメッセージを返すことを期待している、それ以外の方法ですか?
2つの選択肢があります。 1つは、ドキュメントを読み、この方法を使用することです(http://cloud.spring.io/spring-cloud-static/Dalston.SR3/#_scenario_2_output_triggered_by_input)。ここでは、特定の入力メッセージで出力をトリガできる契約を定義できます。あなたの場合、あなたの出力メッセージが間違っている場合は、他のものを受け取ることはありません。もう1つのアプローチは実際には2つの契約(https://github.com/spring-cloud/spring-cloud-contract/issues/321)に分割することです。あなたのアプリはAと呼ばれ、もう1つはBと呼ばれているとしましょう。最初の契約はAにメッセージを送信します(Aはプロデューサ)。BはメッセージをAに送信します(Bはプロデューサです)。したがって、AがBにメッセージを送信するために入力を変更したい場合、契約テストは失敗します。
私は簡単なユースケースを持っています。私は2つのアプリケーションを持っていると言うことができます アプリケーションAとアプリケーションB アプリケーションAは、従業員の名前をメッセージキューに入れて従業員の詳細を要求します アプリケーションBはキューに待機し、従業員 "名前"を入力メッセージとして取得し、詳細 私の問題は次の場合です プロデューサーのApp Bは、従業員「名前」を従業員「名前」を入力として変更します。 私は消費者コードに変更がないので、消費者アプリAが失敗することを期待しています。その静止画は "id"の代わりに "名前"を入力として送信します。 しかし、テストケースは新しく生成されたスタブを渡しています。 ここで何か不足しているのを助けてください。 –
アプリケーションAは、アプリケーションBへのメッセージのプロデューサです。しかし、後で、あなたは、Bがプロデューサーであり、Aへのメッセージであると書いています。私は混乱しています –