Spring Boot的自动配置系统适用于应用程序,但对测试来说有时可能有点过了,最好是仅加载程序要测试的“切片”所需的部分配置。例如,您可能想测试Spring MVC的控制器是否正确地映射了URL,而且您不想在这些测试中涉及数据库调用;或者您可能想要测试JPA实体,而当这些测试运行时,您对Web层并不感兴趣。
spring-boot-test-autoconfigure
模块包含了许多可用于自动配置这些“切片”的注解。每个注解都以相似的方式工作:提供一个加载ApplicationContext
的@…Test
注解以及一个或多个可用于定制自动配置的@AutoConfigure…
注解。
每个切片加载一组非常有限的自动配置类。如果您需要排除其中某个,大多数
@…Test
注解提供了一个excludeAutoConfiguration
属性。或者,您可以使用@ImportAutoConfiguration#exclude
。
也可以与标准的
@SpringBootTest
注解一起使用@AutoConfigure…
注解。如果您对程序进行“切片”不感兴趣但想要一些自动配置的测试bean,则可以使用此组合。