|
此版本仍在开发中,尚未稳定。如需最新的稳定版本,请使用 Spring Framework 7.0.6! |
默认上下文配置
如在
组件类、
XML资源和
Groovy脚本部分所述,TestContext框架会尝试定位默认的上下文配置,如果你没有明确指定从@Configuration个类、XML配置文件或Groovy
脚本加载测试的ApplicationContext。
但是,由于检测算法中的一个错误,默认的上下文配置对于超类或封闭类当前会被忽略,如果类型层次结构或封闭类层次结构(针对 @Nested 个测试类)没有声明 @ContextConfiguration。
从Spring框架7.1开始,TestContext框架将可靠地检测给定测试类上方类型层次结构或封闭类层次结构中的所有 默认上下文配置。因此,在升级到7.1后,测试套件可能会遇到问题。例如,如果超类或封闭类中的静态嵌套@Configuration类因上述错误而被忽略,在7.1中修复该错误后,该@Configuration类将不再被忽略,这可能导致结果ApplicationContext中出现意外的bean或测试直接失败。
在此期间,TestContext框架会在遇到当前被忽略的默认上下文配置时记录警告信息——例如,一个@Configuration类或XML配置文件。本节剩余部分提供了如何处理这类问题的指导,以便在测试套件中遇到警告时进行解决。
|
使用 |
如果不希望处理静态嵌套的@Configuration类,您可以:
-
移除
@Configuration声明。 -
仅在您确实希望处理此类类的地方应用
@ContextConfiguration。 -
将静态嵌套的
@Configuration类移至独立的顶级类,以便它们不会被错误地解释为默认配置类。
同样地,如果您在使用默认的XML配置文件或Groovy脚本时遇到问题,并且不希望它们被处理,您可以:
-
仅在您确实希望处理此类资源的地方应用
@ContextConfiguration。 -
将资源文件重命名为不符合默认命名约定的名称(例如,对于XML配置文件可以使用
*-context.xml),以防止它们被误解释为默认配置文件。 -
将受影响的资源文件移动到项目中的不同包或文件系统位置。