Camel 测试 - java.lang.IllegalArgumentException:必须指定 defaultEndpoint
Camel testing - java.lang.IllegalArgumentException: defaultEndpoint must be specified
我正在尝试使用 http://camel.apache.org/mock.html 为我的骆驼路线创建测试用例。我需要验证路线中的处理器。但是简单的测试对我不起作用。
public class CamelRouteTest extends CamelTestSupport {
@Override
public String isMockEndpointsAndSkip() {
// override this method and return the pattern for which endpoints to mock,
// and skip sending to the original endpoint.
return "mock:result";
}
@Test
public void verifyMessageCount() throws Exception {
template.sendBody("Test");
getMockEndpoint("mock:result").expectedMessageCount(1);
assertMockEndpointsSatisfied();
}
@Override
protected RouteBuilder createRouteBuilder() throws Exception {
return new RouteBuilder() {
@Override
public void configure() throws Exception {
from("direct:start").to("mock:result");
}
};
}
}
堆栈跟踪:
java.lang.IllegalArgumentException: defaultEndpoint must be specified
at org.apache.camel.util.ObjectHelper.notNull(ObjectHelper.java:308)
at org.apache.camel.impl.DefaultProducerTemplate.getMandatoryDefaultEndpoint(DefaultProducerTemplate.java:506)
at org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:370)
template.sendBody("Test")
尝试将 Test
发送到默认端点。由于在您的代码中未配置,因此失败。
你可以:
指定要使用的端点
template.sendBody("direct:start", "Test");
从上下文中获取端点并将其设置为默认端点
Endpoint endpoint = context.getEndpoint("direct:start");
template.setDefaultEndpoint(endpoint);
template.sendBody("Test");
我正在尝试使用 http://camel.apache.org/mock.html 为我的骆驼路线创建测试用例。我需要验证路线中的处理器。但是简单的测试对我不起作用。
public class CamelRouteTest extends CamelTestSupport {
@Override
public String isMockEndpointsAndSkip() {
// override this method and return the pattern for which endpoints to mock,
// and skip sending to the original endpoint.
return "mock:result";
}
@Test
public void verifyMessageCount() throws Exception {
template.sendBody("Test");
getMockEndpoint("mock:result").expectedMessageCount(1);
assertMockEndpointsSatisfied();
}
@Override
protected RouteBuilder createRouteBuilder() throws Exception {
return new RouteBuilder() {
@Override
public void configure() throws Exception {
from("direct:start").to("mock:result");
}
};
}
}
堆栈跟踪:
java.lang.IllegalArgumentException: defaultEndpoint must be specified
at org.apache.camel.util.ObjectHelper.notNull(ObjectHelper.java:308)
at org.apache.camel.impl.DefaultProducerTemplate.getMandatoryDefaultEndpoint(DefaultProducerTemplate.java:506)
at org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:370)
template.sendBody("Test")
尝试将 Test
发送到默认端点。由于在您的代码中未配置,因此失败。
你可以:
指定要使用的端点
template.sendBody("direct:start", "Test");
从上下文中获取端点并将其设置为默认端点
Endpoint endpoint = context.getEndpoint("direct:start"); template.setDefaultEndpoint(endpoint); template.sendBody("Test");