我有一个实现了基于内容的路由EIP(选择操作)的Camel路由。我需要测试一下。我是骆驼的新手。所以,我不确定该怎么做。 谁能告诉我如何测试这个操作。我已经提到了下面的示例代码,必须进行测试。
public void configure() throws Exception
{
onException(Exception.class).handled(true).bean(ErrorHandler.class).stop();
from("{{input}}?concurrentConsumers=10")
.routeId("Actions")
.choice()
.when().simple("${header.Action} == ${type:status1}")
.bean(Class, "method1")
.when().simple("${header.Action} == ${type:status2}")
.bean(Class, "method2")
.when().simple("${header.Action} == ${type:status3}")
.bean(Class, "method3")
.otherwise()
.bean(Class, "method4")
.end();
}
答案 0 :(得分:1)
您可以简单地“建议”您的路线并为每个基于内容的路由器选择添加模拟
public void testAdvised() throws Exception {
// advice the first route using the inlined route builder
context.getRouteDefinition("Actions").adviceWith(context, new RouteBuilder() {
@Override
public void configure() throws Exception {
replaceFromWith("direct:start");
weaveByToString(".*method1.*").after().to("mock:choice1");
weaveByToString(".*method2.*").after().to("mock:choice2");
}
});
getMockEndpoint("mock:choice1").expectedMessageCount(1);
getMockEndpoint("mock:choice2").expectedMessageCount(0);
template.sendBody("direct:start", "Hello World");
assertMockEndpointsSatisfied();
}
这可能需要更多修改才能使其正常工作。如果您需要更多的说明或适合您的路线的真实测试场景,请告诉我。