3

で定義されたルートがあり、 http://camel.apache.org/mock.htmlCamelRoutes.xmlの下部に記載されているラッピング手法を使用してテストしたいと考えています。

じぶんのCamelRoutes.xml

 <route autoStartup="true"  xmlns="http://camel.apache.org/schema/spring">
        <from uri="direct:start"/>
        <to uri="direct:end"/>
    </route>

だから私はCamelRoutesTest.xml含むものを作成しました:

<import resource="CamelRoutes.xml"/>
<bean id="mockAllEndpoints" class="org.apache.camel.impl.InterceptSendToMockEndpointStrategy"/>

しかし、Spring xml をロードし、モック エンドポイントへのアクセスを提供するテストを作成する方法がわかりません。

私が使用する場合..

@ContextConfiguration( locations=("/CamelRoutesTest"))
public class CamelTest extends AbstractJUnit38SpringContextTests

}

次に、モックエンドポイントを取得する方法がわかりません

私が使用する場合..

public class CamelTest extends CamelTestSupport

}

次に、ラクダのコンテキストをロードする方法がわかりません..

CamelTestSupportSpring xml から AND ロード ルートを使用する Web サイトでサンプル テストを見つけることができないようです。

4

3 に答える 3

3

トム、あなたはすでにこれを Camel メーリング リストに投稿しました。ここにもQを投稿するときにこれを書くことをお勧めします。

答えはすでにここに投稿されています http://camel.465427.n5.nabble.com/Problems-testing-Camel-with-Spring-config-tp4267754p4267754.html

于 2011-03-28T18:06:54.803 に答える
3

以下を使用して解決:

public class CamelTest extends CamelSpringTestSupport {  

    @Override
    protected AbstractXmlApplicationContext createApplicationContext() {
        return new ClassPathXmlApplicationContext("/CamelRoutesTest.xml");
    }

    @Test
    @DirtiesContext
    public void discover() throws Exception {

        getMockEndpoint("mock:my.route.out").expectedMessageCount(1);

        template.sendBody("direct:my.route.in", FileUtils.slurpClassPathFile("/samples/sample.data.xml"));

        assertMockEndpointsSatisfied();

    }


}
于 2011-07-05T15:43:34.760 に答える
2

この解決策をありがとう、@Tom !

また、Spring を利用した JUnit テストで Camel を動作させるのにも苦労しました。 2.9.2 以降の標準の camel-distribution。

したがって、@RunWith を使用することはできませんが、ソリューションで説明されている手動の方法に頼らなければなりませんでした...

于 2012-05-25T13:02:56.570 に答える