gpt4 book ai didi

apache-camel - 有没有办法在单元测试期间覆盖处理器?

转载 作者:行者123 更新时间:2023-12-05 08:27:39 27 4
gpt4 key购买 nike

我正在尝试为我的 Camel 路线之一编写单元测试。在路由中有一个处理器,我想用 stub 替换它。有什么办法可以做到这一点?我正在考虑使用 intercept feature但我似乎无法确定最佳方式。

例子:

from(start)
.process(myprocessor)
.to(end)

提前致谢。

最佳答案

是的,您可以通过使用 Camel Adviced 和 weaveById 功能来做到这一点,该功能用于在测试期间替换节点。

您必须在 route 为您的处理器设置 id,然后使用该 id 您可以编织任何您想要的东西。下面是示例,

@Before
protected void weaveMockPoints() throws Exception{

context.getRouteDefinition("Route_ID").adviceWith(context,new AdviceWithRouteBuilder() {
@Override
public void configure() throws Exception {

weaveById("myprocessorId").replace().to(someEndpoint);

}
});

context().start();
}

唯一的问题是,您必须将此应用于尚未启动的路线。最好做任何你想做的改变,然后像上面的例子一样启动你的 camelcontext。

关于apache-camel - 有没有办法在单元测试期间覆盖处理器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33554540/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com