如何在 Spring Boot Camel 项目中测试 Camel - 所有 @EndpointInject 都为 null 但 @Autowired 有效?

How to test a Camel in Spring Boot Camel project - all @EndpointInject are null but @Autowired working?

我有一个非常简单的 Spring Boot (2.5.1)/ Apache Camel (3.10.0) 应用程序,我正在努力创建一个简单的测试。在我的例子中,它甚至无法注入端点:

所以我的第一个简单尝试就是让这个变绿:

@CamelSpringBootTest
class UnmarshalXmlTest {

    @EndpointInject("mock:out")
    MockEndpoint outEndpoint;
    
    @Produce("direct:in")
    ProducerTemplate template;
    
    @Test
    void test() {
        assertNotNull(outEndpoint);
        assertNotNull(template);
    }

}

但它是红色的。遗憾的是 the documentation is outdated (uses deprecated SingleRouteCamelConfiguration) and it is also not showing how to test a given route. The other doc 也无济于事(使用 @CamelSpringTest 也无济于事)。

似乎 spring 注释有效 - 通过 @Autowired 添加内容有效!

这个 表明它应该可以正常工作?!那么如何让骆驼注解生效呢?

看来你还需要@SpringBootTest注解才能解决

@CamelSpringBootTest
@SpringBootTest
class UnmarshalXmlTest {
    ...
}