测试现有的Apache Camel路由

时间:2016-10-05 14:03:09

标签: unit-testing apache-camel

我试图通过扩展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>

0 个答案:

没有答案