2
我有幾個途徑與日誌URI如設置模擬終點在Apache的駱駝與日誌:*
<route>
<from uri="someUri" />
<to uri="someProcessor" />
<to uri="log:SOME_LOG?level=INFO" />
</route>
我使用CamelSpringJUnit4ClassRunner
運行我的單元測試結束。
我希望能夠將我的日誌端點模擬爲MockEndpoint對象。我曾嘗試使用
@MockEndpoints("log:*")
與
end = MockEndpoint.resolve(camelContext, "log:SOME_LOG?level=INFO");
沿而是產生一個ClassCastException不能施放InterceptSendToEndpoint到MockEndpoint。
和還試圖
@EndpointInject(uri="log:SOME_LOG?level=INFO")
MockEndpoint end;
但也產生一個IllegalArgumentException。
Invalid type: org.apache.camel.component.mock.MockEndpoint which cannot be
injected via @EndpointInject/@Produce for: Endpoint[log:SOME_LOG?level=INFO]
一種解決方法,我發現是在前面加上我的日誌URI以「模擬」和使用
@EndpointInject(uri="mock:log:SOME_LOG?level=INFO)
和定義我的路線XML與
<route>
<from uri="someUri" />
<to uri="someProcessor" />
<to uri="mock:log:SOME_LOG?level=INFO" />
</route>
不過,我想通過模擬我的日誌:uris而不必在camel.xml中修改我的路由定義。
有什麼,我失蹤?
你是說他的配置應該是'<到URI =「日誌:SOME_LOG」 />',註釋仍然'@MockEnpoints(「日誌: *「)'但是他需要用'end = MockEndpoint.resolve(camelContext,」mock:log:SOME_LOG?level = INFO「)來初始化? – Snekse 2015-05-13 19:16:23
是的,你是對的。 – 2015-05-15 03:57:21