2013-03-05 103 views
1

我正在創建一個Camel應用程序。我有一系列通過直接渠道連接的路線。所以......JUnit測試獨立路由

  • RouteAdirect:1讀取和寫入direct:2direct:2
  • RouteB讀取和寫入direct:3direct:3
  • RouteC讀取和寫入direct:4

我現在用的是Java DSL創建路由。上下文在Spring中創建,並且這些路由在Spring上下文中使用對bean的引用。

我的問題是,什麼是最好的方式來孤立測試每條路線。我可以創建單獨的路線RouteBuilder,但春天的上下文將包含所有三個路線建設者,所以這是行不通的。

一個想法是將所有的Spring bean放在一個上下文文件中,然後使用只加載一個RouteBuilder的測試特定上下文文件。與此相關的問題是,如果在配置文件(錯誤處理程序,攔截器等)中設置了camelContext中的其他內容,就有可能發生複製/粘貼錯誤。

會有一種方法來創建一個默認的駱駝上下文,鏈接春天的應用程序上下文和加載一個單一的RouteBuilder?這與測試特定的xml文件有相同的問題,但至少沒有額外的xml文件。

還有其他想法嗎?

回答

1

,如果你只需要黑盒測試每個路由,就用駱駝AdviceWith支持每條路線的輸入/輸出隔離...

尤其是看

在interceptSendToEndpoint()API ......應允許您攔截路由之間的消息發送並斷言預期的輸出等。

+0

肯定是可行的解決方案,謝謝。 – 2013-03-06 12:51:40