我有一系列「流水線」組件,都通過ActiveMQ消息隊列進行通信。每個組件使用Camel將這些隊列中的每一個作爲端點處理。每個組件使用相同的基本模式:使用MockEndpoints測試駱駝
其中每個組件使用消息關的輸入隊列的,處理該消息(一個或多個),然後放置1 +上的出站/輸出隊列中的消息。 「輸出」隊列然後成爲鏈中下一個組件的「輸入」隊列。很基本。
我現在試圖捲起袖子,並使用Camel的測試API提供的MockEndpoints
爲每個組件提供單元測試。我一直在瀏覽駱駝網站上的javadoc和幾個例子,但是難以連接所有的點。
在我看來,對於每個部件,我的單元測試的一部分將要完成以下三件事情:
- 測試,看看是否有正在等待一個特定消息的「輸入「隊列
- 拉下這些消息並處理它們
- 推送新郵件到‘輸出’的隊列,並驗證他們把它存在
我是lieve我需要爲每個隊列創建MockEndpoints
像這樣:
@EndpointInject(uri = "mock:inputQueue")
protected MockEndpoint intputQueue;
@EndpointInject(uri = "mock:outputQueue")
protected MockEndpoint outputQueue;
所以現在,在我的JUnit測試方法,我可以設置期望,並與這些端點進行交互:
@Test
public final void processMethodShouldSendToOutputQueue()
{
Component comp = new Component();
comp.process();
outputQueue.assertIsSatisfied();
}
我只是不理解如何連接一切正常:
- 如何連接
comp
到inputQueue
和outputQueue
個MockEndpoints? - 對於每個
MockEndpoint
,我如何設置期望以便assertIsSatisfied()
檢查消息是否存在於特定隊列中,或者特定隊列是否包含消息?
的http://計算器。 com/questions/5664331/how-to-unit-test-production-routes-in-apache-camel – 2011-12-20 19:53:45