骆驼路线测试-注册表:嘲笑:结果

时间:2019-05-31 10:05:35

标签: apache-camel

嗨,我有一条复杂的骆驼路线,在这两条路线之间,我正在使用Bean将消息发送给MQ。

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

application.yaml

   mqservice: bean:mqService
  

application-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;
}
  

Junit

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

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

  

Stacktrace

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

1 个答案:

答案 0 :(得分:1)

使用.to代替.bean,以便将其发送到Camel端点,然后可以发送到模拟端点。使用.bean时,它仅用于调用POJO Java bean。