2017-04-26 4 views
0

最近、多くのautosysジョブがラクダルートに置き換えられたプロジェクトに参加しました。処理フローのほとんどが同じパターンに従います。ラクダルートでsql-storedステップをユニット化する方法

  • が含まれ、いくつかの値に基づいて、ストアドプロシージャ、または別の起動
  • Javaの構造にある種のいくつかのデシリアライズを適用し、特定のフォルダから
  • をファイルを読みますJavaのstructuure
  • にストアドプロシージャの呼び出しを実装する最も簡単な方法は、を使用していたいくつかのサードパーティの消費者

に処理結果を送りますコンポーネント。

from("file://d:/temp/in/?include=myFile*.csv") 
.process("myHeaderSetter") 
.choice() 
    .when(header("myheader")).to("sql-stored:proc_1()?dataSource=#dataSource") 
    .otherwise().to("sql-stored:proc_2()?dataSource=#dataSource") 
.end() 
.to("reportGenerator") 
.to("file://d:temp/out/?fileName=report.txt"); 

各プロセッサは非常によくテストユニットであるが、我々は我々が期待するよう、ルート・ロジックが行くことを確認する:ちょうど私はこのルートを持っているとしましょう。ストアドプロシージャを実行するにはしばらく時間がかかり、実際のルートを実行することは単体テストのオプション部分ではないので、ストアドプロシージャが実際に実行されることなく呼び出されることをテストする方法が必要です。

したがって、上記のようなルートを単体テストするには、どのような方法が良いでしょうか。

は、あなたの入力

+0

SQLの代わりに模擬にルーティングするなどの他のビットと経路の一部を置き換えるために使用することができるので、テスト時にアドバイスを見てください –

+0

提案をありがとう。それはとてもうまくいった。私はそれを受け入れることができるように答えとしてあなたのコメントを投稿してください。 – Julian

答えて

0

のために事前にありがとうあなたの代わりにSQLをあざけりするルーティングなどの他のビットを使用してルートの部品を交換するためにそれを使用することができますようテストするときにアドバイス-と(http://camel.apache.org/advicewith.html)を見てみましょう

関連する問題