当前位置: 首页 > 知识库问答 >
问题:

测试骆驼石英路线

爱琪
2023-03-14

我试着为阿帕奇骆驼路线做一个jUnit测试。类似于这样:

@RunWith(CamelSpringJUnit4ClassRunner.class)
@ContextConfiguration(
    loader = CamelSpringDelegatingTestContextLoader.class
)
public class MyExportRouteBuilderIT extends CamelTestSupport {
    @Test
    public void test() {
        // trigger and check the files made by route builder processor
    }

    @Override
    protected RouteBuilder createRouteBuilder() throws Exception {
        return new MyExportRouteBuilder();
    }
}

builder类的定义如下

from("quartz2://exportJob?cron=" + cronTrigger)
.setHeader(FILE_NAME, expression(FILE_NAME_FORMAT))
.process(myExportRouteProcessor)
.marshal(new BindyCsvDataFormat(MyExportData.class))
.to("file:///destination);

myExportRouteProcencer类只是从JPA存储库中获取一些数据,并将结果放入路由。我想要的是在测试类中触发此路由,以检查整个过程是否正确完成。目前,处理器没有被触发。我应该做些什么?

共有1个答案

勾通
2023-03-14

您可以直接使用AdviceWitRouteBuilder#replace eFromBy替换测试中的Quotz2组件。

@Test
public void test() throws Exception{
   //mock input route (replace quartz with direct)
   context.getRouteDefinitions().get(0).adviceWith(context, new AdviceWithRouteBuilder() {
       @Override
       public void configure() throws Exception {
           replaceFromWith("direct:triggerQuartz");
       }
   });

   //trigger endpoint
   sendBody("direct:triggerQuartz", null);

   //do some assertions
}    
 类似资料:
  • 问题内容: 我尝试对Apache骆驼路线进行junit测试。像这样的东西: 构建器类的定义如下 “ myExportRouteProcessor”类仅从JPA存储库中获取一些数据,并将结果放入路由。我想要的是在测试类中触发此路由,以检查整个过程是否正确完成。当前,处理器未启动。我该怎么办? 问题答案: 您可以使用AdviceWithRouteBuilder#replaceFromWith直接替换测

  • 我设置了一个endpoint,如下所示: 我用骆驼石英2.22.2和石英1.8.6 下面是从关闭到启动上下文的日志。

  • 我有一个Springboot应用程序,其中配置了一些驼峰路线。 我想测试从到的路由。我试过这里提到的不同东西http://camel.apache.org/camel-test.html,但似乎无法让它工作。 我正在尝试这样做: 但是我的ProducerTemplate总是。我尝试了自动连接CamelContext,但遇到一个异常,它无法解析CamelContext。但这可以通过添加到类。但是我的

  • 我想用Apache Camel和Quartz2按spceific顺序设计路线。我定义了一个上下文,添加了两条路由: 代码构建和运行,但我没有来自控制台的反馈,我期待订单1的路由结果。此外,顺序为2的路由不会写入作为参数传递的文件。每条路线,采取单独正确运行。有人能帮帮我吗?

  • 我在MyRouteBuilder中有一条骆驼路线。正在使用ActiveMQ消息的java文件: 我写了一个测试用例如下: 当我运行单元测试用例时,我得到了这个奇怪的错误: 看到这些信息,我尤其感到困惑: 和 虽然我有一个正确的队列名称,但为什么队列显示为?还有,为什么代理url? 我想运行这个单元测试用例,以便它在所有环境中正常运行,如:本地、DIT、SIT、PROD等。因此,我不能负担的经纪人u

  • 我有一个Spring boot应用程序,其中包含几条camel路由,这些路由应该基于Quartz2的CronTrigger启动。由于某种原因,只有第一个计划的路由才会启动,但它是在最后一个计划的时间启动的。 路由一:mytime-1h 路由二:mytime 已配置导出路由:WeekProcessingRoute-Schedule:Quartz2:/cronTrigger?cron=041***?