我想用CamelTestSupport測試我的駱駝路線。我有一個類中定義這樣CamelTestSupport從yml文件讀取佔位符
public class ActiveMqConfig{
@Bean
public RoutesBuilder route() {
return new SpringRouteBuilder() {
@Override
public void configure() throws Exception {
from("activemq:{{push.queue.name}}").to("bean:PushEventHandler?method=handlePushEvent");
}
};
}
}
而且我的測試類這個樣子的
@RunWith(SpringRunner.class)
public class AmqTest extends CamelTestSupport {
@Override
protected RoutesBuilder createRouteBuilder() throws Exception {
return new ActiveMqConfig().route();
}
@Override
protected Properties useOverridePropertiesWithPropertiesComponent() {
Properties properties = new Properties();
properties.put("pim2.push.queue.name", "pushevent");
return properties;
}
protected Boolean ignoreMissingLocationWithPropertiesComponent() {
return true;
}
@Mock
private PushEventHandler pushEventHandler;
@BeforeClass
public static void setUpClass() throws Exception {
BrokerService brokerSvc = new BrokerService();
brokerSvc.setBrokerName("TestBroker");
brokerSvc.addConnector("tcp://localhost:61616");
brokerSvc.setPersistent(false);
brokerSvc.setUseJmx(false);
brokerSvc.start();
}
@Override
protected JndiRegistry createRegistry() throws Exception {
JndiRegistry jndi = super.createRegistry();
MockitoAnnotations.initMocks(this);
jndi.bind("pushEventHandler", pushEventHandler);
return jndi;
}
@Test
public void testConfigure() throws Exception {
template.sendBody("activemq:pushevent", "HelloWorld!");
Thread.sleep(2000);
verify(pushEventHandler, times(1)).handlePushEvent(any());
}}
這是工作完全正常我的路線。但我必須使用useOverridePropertiesWithPropertiesComponent
函數設置佔位符{{push.queue.name}}
。但我希望它從我的.yml文件中讀取。
我無法做到。有人可以建議。
謝謝