我有一条简单的骆驼路线:
@Component
public class HelloRoute extends RouteBuilder {
String startEndpoint;
@Override
public void configure() {
from(startEndpoint).process(new HelloProcessor());
}
}
为了测试,我读到的所有内容都说要添加一个存储结果的模拟端点:
from(startEndpoint).process(new HelloProcessor()).to("mock:result");
这意味着我必须更改我的代码以包含模拟,它将在生产中运行。骆驼文档非常清楚,不要在生产中使用模拟: https://camel.apache.org/mock.html
如何编写使用模拟评估结果的单元测试,但同时路由器类应该在生产中运行,没有任何测试代码或其他人为和不必要的端点,如
to("log:blah")
答案 0 :(得分:2)
以下是您在测试用例中可以执行的操作
context.getRouteDefinitions().get(0).adviceWith(context, new AdviceWithRouteBuilder() {
@Override
public void configure() throws Exception {
weaveAddLast().to("mock:result");
}
});
这会将“mock:result”添加到路径的末尾。这样,您就可以修改路由以进行测试而无需重写。