Jen*_* P. 4 unit-testing apache-camel
我有一个简单的骆驼路线:
@Component
public class HelloRoute extends RouteBuilder {
String startEndpoint;
@Override
public void configure() {
from(startEndpoint).process(new HelloProcessor());
}
}
Run Code Online (Sandbox Code Playgroud)
为了进行测试,我读到的所有内容都说要添加一个模拟端点来存储结果:
from(startEndpoint).process(new HelloProcessor()).to("mock:result");
Run Code Online (Sandbox Code Playgroud)
这意味着我必须更改我的代码以包含模拟,并且它将在生产中运行。骆驼文档非常清楚不要在生产中使用模拟: https: //camel.apache.org/mock.html
如何编写一个使用模拟来评估结果的单元测试,但同时路由器类应该在生产中运行,而不需要任何测试代码或其他人为和不必要的端点,例如
to("log:blah")
Run Code Online (Sandbox Code Playgroud)
小智 5
这是您可以在测试用例中执行的操作
context.getRouteDefinitions().get(0).adviceWith(context, new AdviceWithRouteBuilder() {
@Override
public void configure() throws Exception {
weaveAddLast().to("mock:result");
}
});
Run Code Online (Sandbox Code Playgroud)
这会将“mock:result”添加到路线的末尾。这样您就可以修改测试路由而无需重写它们。
| 归档时间: |
|
| 查看次数: |
1727 次 |
| 最近记录: |