我对Camel进行了主要测试。
@RunWith(EJBContainerRunner.class)
public class TestIntegrationBeanCtrlContrat extends CamelTestSupport {
@EndpointInject(uri = "mock:result")
protected MockEndpoint resultEndpoint;
@Produce(uri = "direct:start")
protected ProducerTemplate template;
@Override
protected RouteBuilder createRouteBuilder() {
return new RouteBuilder() {
@Override
public void configure() {
this.from("direct:start")
.bean(MappingCB2ABean.class, "mapToObj")
.bean(BeanCalculChampsSpecif.class, "beanChampsSpecif")
.bean(BeanAlimContrat.class, "beanAlimentationValContrat")
.bean(BeanInitDateForce.class, "initialisation")
.bean(CtrlContratBean.class, "ctrlContrat")
.to("mock:result");
}
};
}
@Test
public void test_ControleBean_Integration() throws Exception {
// Important : pensez à changer le nom du fichier ou répertoire où se trouve le fichier test
this.context.getShutdownStrategy().setTimeout(3000000L);
this.template.sendBody("direct:start", new File(
"C:/Files/spool_in/R2-CB2A-EM22055.REMCB2A.D20140505.H103059.FORCEDT20141210"));
}
}
每个bean工作正常,但是当我添加一个使用CDI组件的bean时,它不起作用。
bean是CtrlContratBean。
public class CtrlContratBean {
@Inject
DateBusinessManager dateBusinessManager;
/**
* Bean Ctrl Contrat
*
* @param exchange
* @return
*/
public List<ContratControllable> ctrlContrat(final Exchange exchange) {
this.dateBusinessManager.getFirstDayOfMonth(
Integer.valueOf(TypeCalendar.CALENDAIRE.getValueCalendar()), valueForceDt);}
dateBusinessManager的值仍为NULL。 dateBusinnesManager来自另一个连接到BDD以恢复数据的项目。
我不知道它为什么不起作用,我将@RunWith(EJBContainerRunner.class)添加到测试类以运行Ejb容器。
有什么想法吗? Thxs
答案 0 :(得分:0)
我认为您可能需要扩展CdiTestSupport而不是CamelTestSupport。关键是要找到合适的CdiContainer,因为我没有看到EJBContainerRunner的代码,如果CdiTestSupport不起作用,你可能需要在那里工作。