首页 > 解决方案 > 骆驼路线测试 - 注册表:模拟:结果

问题描述

嗨,我有复杂的骆驼路线,在路线之间我使用 Bean 向 MQ 发送消息。

.bean("{{tp.mqservice}}")

应用程序.yaml

   mqservice: bean:mqService

应用程序-test.yaml

mqservice: mock:result

下面是我的 PortfolioRouteTest

@ActiveProfiles("test")
@RunWith(CamelSpringBootRunner.class)
@SpringBootTest(classes = MainApplication.class, webEnvironment = WebEnvironment.RANDOM_PORT)
@MockEndpoints
public class PortfolioTncRouteTest {

    @EndpointInject(value = "{{trade-publisher.portfolio-tnc.source-endpoint}}")
    private ProducerTemplate producerTemplate;

    @EndpointInject(value = "{{trade-publisher.mqservice}}")
    private MockEndpoint mock;
}

朱尼特

@Test
public void portfolioTncRouteTest() throws InterruptedException {
    data = ...
    Mockito.when(service.search(Mockito.any(....class))).thenReturn(...);
    producerTemplate.sendBody(data);
    mock.expectedMessageCount(1);
    mock.assertIsSatisfied(30000);
}

但是,当我运行测试时,我遇到了错误。我错过了什么吗?

堆栈跟踪

Caused by: org.apache.camel.NoSuchBeanException: No bean could be found in the registry for: mock:result
    at org.apache.camel.component.bean.RegistryBean.getBean(RegistryBean.java:92)
    at org.apache.camel.component.bean.RegistryBean.createCacheHolder(RegistryBean.java:67)
    at org.apache.camel.reifier.BeanReifier.createProcessor(BeanReifier.java:57)
    at org.apache.camel.reifier.ProcessorReifier.createProcessor(ProcessorReifier.java:485)
    at org.apache.camel.reifier.ProcessorReifier.createOutputsProcessorImpl(ProcessorReifier.java:448)
    at org.apache.camel.reifier.ProcessorReifier.createOutputsProcessor(ProcessorReifier.java:415)
    at org.apache.camel.reifier.ProcessorReifier.createOutputsProcessor(ProcessorReifier.java:212)
    at org.apache.camel.reifier.ExpressionReifier.createFilterProcessor(ExpressionReifier.java:39)
    at org.apache.camel.reifier.WhenReifier.createProcessor(WhenReifier.java:32)
    at org.apache.camel.reifier.WhenReifier.createProcessor(WhenReifier.java:24)
    at org.apache.camel.reifier.ProcessorReifier.createProcessor(ProcessorReifier.java:485)
    at org.apache.camel.reifier.ChoiceReifier.createProcessor(ChoiceReifier.java:54)
    at org.apache.camel.reifier.ProcessorReifier.createProcessor(ProcessorReifier.java:485)
    at org.apache.camel.reifier.ProcessorReifier.createOutputsProcessorImpl(ProcessorReifier.java:448)
    at org.apache.camel.reifier.ProcessorReifier.createOutputsProcessor(ProcessorReifier.java:415)
    at org.apache.camel.reifier.TryReifier.createProcessor(TryReifier.java:38)
    at org.apache.camel.reifier.ProcessorReifier.createProcessor(ProcessorReifier.java:485)
    at org.apache.camel.reifier.ProcessorReifier.createOutputsProcessorImpl(ProcessorReifier.java:448)
    at org.apache.camel.reifier.ProcessorReifier.createOutputsProcessor(ProcessorReifier.java:415)
    at org.apache.camel.reifier.ProcessorReifier.createOutputsProcessor(ProcessorReifier.java:212)
    at org.apache.camel.reifier.ProcessorReifier.createChildProcessor(ProcessorReifier.java:231)
    at org.apache.camel.reifier.SplitReifier.createProcessor(SplitReifier.java:42)
    at org.apache.camel.reifier.ProcessorReifier.makeProcessorImpl(ProcessorReifier.java:536)
    at org.apache.camel.reifier.ProcessorReifier.makeProcessor(ProcessorReifier.java:497)
    at org.apache.camel.reifier.ProcessorReifier.addRoutes(ProcessorReifier.java:241)
    at org.apache.camel.reifier.RouteReifier.addRoutes(RouteReifier.java:358)
    ... 56 more

标签: apache-camel

解决方案


使用.to而不是将.bean其发送到 Camel 端点,然后您可以发送到模拟端点。当使用它时.bean,它仅用于调用 POJO Java bean。


推荐阅读