我有一個Springboot應用程序,我配置了一些駱駝路由。Spring Boot Apache Camel路由測試
public class CamelConfig {
private static final Logger LOG = LoggerFactory.getLogger(CamelConfig.class);
@Value("${activemq.broker.url:tcp://localhost:61616}")
String brokerUrl;
@Value("${activemq.broker.maxconnections:1}")
int maxConnections;
@Bean
ConnectionFactory jmsConnectionFactory() {
PooledConnectionFactory pooledConnectionFactory = new PooledConnectionFactory(new ActiveMQConnectionFactory(brokerUrl));
pooledConnectionFactory.setMaxConnections(maxConnections);
return pooledConnectionFactory;
}
@Bean
public RoutesBuilder route() {
LOG.info("Initializing camel routes......................");
return new SpringRouteBuilder() {
@Override
public void configure() throws Exception {
from("activemq:testQueue").to("bean:queueEventHandler?method=handleQueueEvent");
}
};
}
}
我想從ActiveMQ的這條路線測試:testQueue到queueEventHandler :: handleQueueEvent
我想在這裏http://camel.apache.org/camel-test.html提到的不同的東西,但似乎並沒有得到它的工作。
我試圖做這樣的事情
@RunWith(SpringRunner.class)
@SpringBootTest(classes = {CamelConfig.class, CamelTestContextBootstrapper.class})
public class CamelRouteConfigTest {
@Produce(uri = "activemq:testQueue")
protected ProducerTemplate template;
@Test
public void testSendMatchingMessage() throws Exception {
template.sendBodyAndHeader("testJson", "foo", "bar");
.....
..... verify handleQueueEvent method is called on bean queueEventHandler by mocking
}
但我ProducerTemplate總是空。我嘗試了Autowiring Camelcontext,爲此我得到一個異常說它無法解析camelContext。但是可以通過將SpringCamelContext.class添加到@SpringBootTest類來解決這個問題。但我的ProducerTemplate仍然爲空。
請建議。我正在使用駱駝2.18 Springboot 1.4
你能否在Git中提供完整的路由和測試代碼?謝謝。 – sunleo