Java Apache Camel Springboot测试:Camel上下文为null

Java Apache Camel Springboot测试:Camel上下文为null,java,spring-boot,apache-camel,Java,Spring Boot,Apache Camel,我正在尝试为ApacheCamel编写一个简单的纯spring测试。我的目标只是测试Camel上下文是否已启动 代码是: @RunWith(CamelSpringRunner.class) @BootstrapWith(CamelTestContextBootstrapper.class) @ContextConfiguration() @DirtiesContext(classMode = ClassMode.AFTER_EACH_TEST_METHOD) class CamelPocAppl

我正在尝试为ApacheCamel编写一个简单的纯spring测试。我的目标只是测试Camel上下文是否已启动

代码是:

@RunWith(CamelSpringRunner.class)
@BootstrapWith(CamelTestContextBootstrapper.class)
@ContextConfiguration()
@DirtiesContext(classMode = ClassMode.AFTER_EACH_TEST_METHOD)
class CamelPocApplicationTests {

    @Autowired
    protected CamelContext camelContext;

    @Test
    void contextLoads() {
        assertEquals(ServiceStatus.Started, camelContext.getStatus());
    }

}
但是测试失败,因为Camel上下文为null。我做错了什么

编辑:

我终于有时间再做这个项目了。 正确的配置是:

@RunWith(CamelSpringBootRunner.class)
@DirtiesContext(classMode = ClassMode.AFTER_EACH_TEST_METHOD)
@SpringBootTest
class CamelPocApplicationTests {

    @Autowired
    protected CamelContext camelContext;

    @Test
    void contextLoads() {
        assertEquals(ServiceStatus.Started, camelContext.getStatus());
    }

}
测试就是这样进行的

谢谢你们!我想了解更多

现在我的问题是:

  • 为什么骆驼测试表明不是这样?为什么没有@SpringBootTest注释,为什么使用CamelTestContextBootstrapper.class引导也会导致测试失败
  • @RunWith(CamelSpringRunner.class)之间有什么区别 和@RunWith(CamelSpringBootRunner.class)?我注意到测试将运行相同的

  • 使用@SpringBootTest和使用SpringBoot进行测试时需要使用的注释。请参阅驼峰弹簧引导示例及其测试。克劳斯是对的。另外,我不久前写过。你也可以在那里找到有用的东西。