5

Bean を使用する Java で構成された単一のルートを単体テストしたいと考えています。私は実際にキャメルを読みました(第6.1.4章)これを行う方法:

protected RouteBuilder createRouteBuilder() throws Exception {
    return new myRoute();
}

しかし、私の場合、ルーティングにはいくつかの Bean を登録する必要があります。スタンドアロン アプリで Bean を登録する方法を知っています:ここを参照してください。 しかし、「CamelTestSupport」内で Bean を登録する方法は? レジストリなしで Bean を使用する方法はありますか? おそらくそれらを注入することによって(すべてのBeanにはargコンストラクターがありません)?私は Guice を使用しており、テストでは Jukito (Guice+Mockito) を使用しています。

4

3 に答える 3

11

キャメル 3.0.0 以降

camel コンテキストにアクセスできる任意の場所から JNDI レジストリを更新できるようになりました。

context.getRegistry().bind("myId", myBean);

詳細はこちらhttps://camel.apache.org/manual/latest/camel-3-migration-guide.html#_camel_test

Camel 3.0.0 より前

createRegistry() メソッドをオーバーライドする必要があります。

@Override
protected JndiRegistry createRegistry() throws Exception {
    JndiRegistry jndi = super.createRegistry();

    //use jndi.bind to bind your beans

    return jndi;
}

@Test
public void test() {
    //perform test
}
于 2014-04-18T11:29:53.867 に答える