Я пытаюсь написать простой простой тест пружины для Apache 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());
}
}
, но проверка не пройдена, поскольку верблюжий контекст равен нулю. Что я делаю не так?
РЕДАКТИРОВАТЬ:
У меня наконец-то появилось время снова поработать над этим проектом. Правильная конфигурация:
@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());
}
}
Таким образом, тест работает.
Спасибо, ребята! Я обращаюсь к этому ответу для получения дополнительной информации.
Теперь мои вопросы:
- Почему тест Camel документация гласит иначе? Почему нет аннотации @SpringBootTest и почему при загрузке с помощью CamelTestContextBootstrapper.class тест тоже не выполняется?
- В чем разница между @RunWith (CamelSpringRunner.class) и @RunWith (CamelSpringBootRunner.class) Я заметил, что тест будет проходить так же.