这对我使用不推荐使用的CamelSpringDelegatingTestContextLoader有用,我认为不应该使用它,因为它重复了CamelTestContextBootstrapper的工作。如果我省略CamelSpringDelegatingTestContextLoader,则测试将无法自动装配CamelContext(找不到bean,如果我注释CamelContext,则输入为空),因此注入无法正常进行。但这是实现测试的建议方法(例如CamelSpringRunnerPlainTest)。 我的骆驼版本是2.21.2。 CamelBootSpringRunner也可以工作,但是我不想在不需要Spring Boot的情况下运行测试。另外我也不想扩展像SpringTestSupport这样的类。
@RunWith(CamelSpringRunner.class)
@BootstrapWith(CamelTestContextBootstrapper.class)
@MockEndpoints
@DirtiesContext(
classMode = DirtiesContext.ClassMode.AFTER_CLASS)
@ContextConfiguration(loader = CamelSpringDelegatingTestContextLoader.class,
classes = MyTest.TestConfig.class)
public class MyTest {
@Autowired
protected CamelContext camelContext;
@Produce(uri = "direct:in")
private ProducerTemplate input;
...
@Configuration
static class TestConfig extends CamelConfiguration {
...