4.14. 使用 Camel Spring Boot 测试
如果在 Spring Boot 上运行的 Camel 上,Spring Boot 会自动嵌入 Camel 及其所有路由,这些路由使用 @Component 标注。当使用 Spring 引导测试时,您可以使用 @SpringBootTest 而不是 @ContextConfiguration 来指定要使用的配置类。
当您在不同的 RouteBuilder 类中有多个 Camel 路由时,Camel Spring Boot 将包括所有这些路由。因此,当您希望只从一个 RouteBuilder 类测试路由时,您可以使用以下模式包含或排除要启用的 RouteBuilders:
- java-routes-include-pattern: 用于包括与模式匹配的 RouteBuilder 类。
- java-routes-exclude-pattern: 用于排除与模式匹配的 RouteBuilder 类。exclude 优先于 include。
您可以在单元测试类中指定这些模式,作为 @SpringBootTest 注释的属性,如下所示:
@RunWith(CamelSpringBootRunner.class)
@SpringBootTest(classes = {MyApplication.class);
properties = {"camel.springboot.java-routes-include-pattern=**/Foo*"})
public class FooTest {
@RunWith(CamelSpringBootRunner.class)
@SpringBootTest(classes = {MyApplication.class);
properties = {"camel.springboot.java-routes-include-pattern=**/Foo*"})
public class FooTest {
在 FooTest 类中,include 模式是 **/Foo*,它代表 Ant 样式模式。在这里,模式以双星号开头,它与任何前导软件包名称匹配。/foo* 表示类名称必须以 Foo 开头,例如 FooRoute。您可以使用以下 maven 命令运行测试:
mvn test -Dtest=FooTest
mvn test -Dtest=FooTest