很簡單路線:駱駝模擬端點沒有收到任何消息
import org.apache.camel.builder.RouteBuilder
class TestRoutes extends RouteBuilder {
@Override
void configure(){
from("direct:foo").to("mock:bar")
}
}
非常簡單的測試案例:
package mocktest
import static org.junit.Assert.*
import org.junit.*
import org.apache.camel.CamelContext
import org.apache.camel.ProducerTemplate
import org.apache.camel.test.junit4.CamelTestSupport
class TestRouteTests extends CamelTestSupport {
def CamelContext camelContext
def ProducerTemplate producerTemplate
@Test
void testSomething() {
getMockEndpoint('mock:bar').expectedMessageCount(1)
producerTemplate.sendBody('direct:foo', "Hello World")
assertMockEndpointsSatisfied()
}
}
聞聽此事:
| Failure: testSomething(mocktest.TestRouteTests)
| java.lang.AssertionError: mock://bar Received message count. Expected: <1> but was: <0>
駱駝嘗試:2.12。 1,駱駝:2.11.1 今天打破了我的頭試圖解決。完整的測試grails項目只包含這個問題在這裏:https://github.com/gutsal-arsen/mocktest
任何人都可以請幫我解決?
UPDATE 1
@Test
void testSimpleRoute() {
def mockEndpoint
mockEndpoint = camelContext.getEndpoint('mock:bar')
//mockEndpoint = getMockEndpoint('mock:bar')
mockEndpoint.expectedMessageCount(1)
producerTemplate.sendBody('direct:foo', 'Hello World')
mockEndpoint.assertIsSatisfied()
}
這一個不:
@Test
void testSimpleRoute() {
def mockEndpoint
//mockEndpoint = camelContext.getEndpoint('mock:bar')
mockEndpoint = getMockEndpoint('mock:bar')
mockEndpoint.expectedMessageCount(1)
producerTemplate.sendBody('direct:foo', 'Hello World')
mockEndpoint.assertIsSatisfied()
}
所以問題是內部getMockEndpoint()方法。
mockEndpoint.assertIsSatisfied()搞亂了我的測試用例,assertMockEndpointsSatisfied()修復了它。謝謝。 –