1

Camel アプリケーションを作成しています。すべてが直接チャネルを介して接続されている一連のルートがあります。そう...

  • RouteA読み取りdirect:1と書き込みdirect:2
  • RouteB読み取りdirect:2と書き込みdirect:3
  • RouteC読み取りdirect:3と書き込みdirect:4

Java DSL を使用してルートを作成しています。コンテキストは Spring 内で作成され、ルートは Spring コンテキスト内の Bean への参照を使用します。

私の質問は、各ルートを個別にテストする最良の方法は何ですか. 各ルートを個別に作成できますRouteBuilderが、春のコンテキストには 3 つのルート ビルダーがすべて含まれているため、機能しません。

すべての Spring Bean を 1 つのコンテキスト ファイルに配置し、単一のRouteBuilder. これに関する問題は、構成ファイルに他のものが設定されている場合camelContext(エラー ハンドラー、インターセプターなど)、コピー/貼り付けエラーが発生する可能性があることです。

デフォルトのキャメル コンテキストを作成し、Spring アプリケーション コンテキストをリンクして単一の .xml をロードする方法はありますRouteBuilderか? これには、テスト固有の xml ファイルと同じ問題がありますが、少なくとも追加の xml ファイルはありません。

他の考えはありますか?

4

1 に答える 1

1

各ルートをブラック ボックスでテストする必要がある場合は、Camel のAdviceWithサポートを使用して、各ルートの入力/出力を分離します...

特にinterceptSendToEndpoint() APIを見てください...ルート間のメッセージの送信を傍受し、予想される出力などでアサートできるようにする必要があります.

于 2013-03-05T20:29:10.063 に答える