6.16. Camel Spring Boot でのテスト
Camel を Spring Boot で実行すると、Spring Boot は自動的に Camel と @Component
アノテーションが付けられたそのルートを組み込みします。Spring Boot でテストする場合、@ContextConfiguration
ではなく @SpringBootTest
を使用して、使用する設定クラスを指定します。
異なる RouteBuilder クラスに複数の Camel ルートがある場合、アプリケーションの実行時に Camel Spring Boot コンポーネントによってこれらのルートがすべて自動的に組み込まれます。1 つの RouteBuilder クラスのみからルートをテストする場合は、以下のパターンを使用して、有効にする RouteBuilder を include (含める) または exclude (除外) することができます。
- java-routes-include-pattern: パターンに一致する RouteBuilder クラスを include (含める) ために使用されます。
- java-routes-exclude-pattern: パターンに一致する RouteBuilder クラスを exclude (除外) するために使用されます。exclude は include よりも優先されます。
手順
以下のように、ユニットテストクラスの
include
またはexclude
パターンを@SpringBootTest
アノテーションへのプロパティーとして指定します。@RunWith(CamelSpringBootRunner.class) @SpringBootTest(classes = {MyApplication.class); properties = {"camel.springboot.java-routes-include-pattern=**/Foo*"}) public class FooTest {
FooTest
クラスの include パターンは Ant スタイルパターンを表す**/Foo*
です。このパターンは、すべてのパッケージ名と一致する 2 つのアスタリスクで始まります。/Foo*
は、FooRoute のようにクラス名が Foo で始まる必要があることを意味します。以下の maven コマンドを使用してテストを実行します。
mvn test -Dtest=FooTest