我试图通过扩展CamelTestSupport并覆盖createRouteBuilder()来对我现有的路由进行单元测试。我得到IllegalArgumentException:必须指定camelContext。有人可以帮忙吗?
public class RutaArchivarItemsTest extends CamelTestSupport{
@EndpointInject(uri = "mock:result")
protected MockEndpoint jpaArchivo;
@Produce(uri = "direct:jpaArchivoPieza")
protected ProducerTemplate template;
@Override
protected RouteBuilder createRouteBuilder() {
RutaArchivarItems rutaArchivarItems = new RutaArchivarItems();
rutaArchivarItems.offset = 24;
rutaArchivarItems.habilitado = true;
return rutaArchivarItems;
}
@Test
public void piezaParaArchivar() throws Exception {
EventoPieza eventoPieza = new EventoPieza("AA","TN030", IpsEvent.IpsVersion.v2015.name(),"test");
ArchivoEventos archivoEventos = new ArchivoEventos(eventoPieza);
jpaArchivo.expectedBodiesReceived(archivoEventos);
template.sendBody(eventoPieza);
jpaArchivo.expectedBodyReceived();
}
编辑:
所以,如果我用:
替换createRouteBuilder()@Before
public void setup() throws Exception {
super.setUp();
context.addRoutes(new RutaArchivarItems(){
@Override
public void intialize() {
habilitado = true;
offset = 24;
}
});
}
我得到一个不同的错误:javax.persistence.PersistenceException:没有名为camel的EntityManager的持久性提供程序,在这一行:context.addRoutes(new RutaArchivarItems(){。所以我想我应该以某种方式绑定em字段...... < / p>