1

これらの2つのルートがあるとします

<camelContext> 
    <route>
        <from ref="incoming" />
        <!-- some processors -->
        <inOnly ref="outgoing" />
    </route>

    <route>
        <from ref="outgoing" />
        <!-- some processors -->
        <inOnly ref="finish" />
    </route>
</camelContext>

実際のコンテキストでは、これらは問題のないJMSキューです。しかし、ルーティングが正しいことをテストしたいので、testContext.xmlのJMSコンポーネントを次のように変更しました。

incoming -> direct
outgoing -> mock
finish -> mock

メッセージの数をテストできるように、これらのinOnlyキューをモックにします。問題は、モックキューが2番目のルートの入力キューとして機能できないことです。どうすればこれを修正できますか?

4

2 に答える 2

1

CamelとJMSを使用して自動統合JUnitテストを実行する場合、通常はActiveMQブローカーを埋め込みます。

また、セダのエンドポイントとして「発信」がある、より単純なシナリオも検討します。次に、メッセージの「終了」モックエンドポイントを確認するだけで、ルート全体が機能することがわかります。より複雑なルーティングシナリオの場合、JUnitテストでカバーする必要がある場合は、少し考える必要があります。

于 2012-08-30T19:57:02.107 に答える
0

JMSなどの代わりにスタブコンポーネントを使用できます。そのseda/vmは内部でキューに入れられるため、そこからメッセージを送信および消費できます http://camel.apache.org/stub

于 2012-08-31T11:17:11.273 に答える