別の RouteBuilder クラスでルートを作成したとしましょう。次のようになります。
- JMS キューからメッセージを取得する
- いくつかの変換、検証などを行います
- 検証結果に応じて、特定の JMS キューに転送され、DB に何かが保存されます
JMS ブローカーと DB を使用せずに、このルートを単体テストしたいと思います。Processor の実装をモックできることはわかっていますが、それだけでは十分ではありません。このルートを変更したくありません (jar ファイルでそのクラスを取得したとしましょう)。Camel in Action (セクション 6.2.6) から知る限り、エンドポイントのモックやその他のものを使用できるようにするには、ルート エンドポイントの定義を変更する必要があります (本の例では、これは "mina:tcp:/ /miranda」から「mock:miranda」など)。
ルート定義を変更せずにフローを完全に分離してテストすることは可能ですか? RouteBuilder を別のクラスとして取得した場合、何らかの方法でルート定義を「コピー」して手動で変更する必要がありますか? 間違ったことをテストしていませんか?
私は Camel にまったく慣れていないので、ルートの開発中に単体テストを分離できるのは本当にクールだと思います。何かを変更したり、小さなテストを実行したり、結果を観察したりできるようにするためだけに。