43.3.2 检测测试配置

如果熟悉Spring测试框架,你可能经常通过@ContextConfiguration(classes=…)指定加载哪些Spring @Configuration,也可能经常在测试类中使用内嵌@Configuration类。

当测试Spring Boot应用时这些就不需要了,Spring Boot的@*Test注解会自动搜索主配置类,即使你没有显式定义它。

搜索算法是从包含测试类的包开始搜索,直到发现@SpringBootApplication@SpringBootConfiguration注解的类,只要按恰当的方式组织代码,通常都会发现主配置类。

如果你使用一个测试注解来测试你应用的一个更加特定的部分,你应当避免添加针对main方法应用类的特定区域的配置设置。

如果想自定义主配置类,你可以使用一个内嵌的@TestConfiguration类。不像内嵌的@Configuration类(会替换应用主配置类),内嵌的@TestConfiguration类是可以跟应用主配置类一块使用的。

Spring测试框架在测试过程中会缓存应用上下文,因此,只要你的测试共享相同的配置(不管是怎么发现的),加载上下文的潜在时间消耗都只会发生一次。

最后更新于