Spring TestContext 框架内部的默认配置足以满足所有常见的使用情况。然而,有时开发团队或第三方框架希望改变默认的 ContextLoader,实现自定义的 TestContext 或 ContextCache,增强 ContextCustomizerFactory 和 TestExecutionListener 实现的默认集,等等。对于这种对 TestContext 框架运行方式的底层控制,Spring 提供了一个引导策略。
TestContextBootstrapper 定义了用于引导 TestContext 框架的 SPI。TestContextBootstrapper 被 TestContextManager 用来加载当前测试的TestExecutionListener 实现,并构建它所管理的 TestContext。你可以通过使用 @BootstrapWith,直接或作为元注释,为一个测试类(或测试类层次结构)配置一个自定义的引导策略。如果没有通过使用 @BootstrapWith 明确地配置一个引导器,那么就会使用DefaultTestContextBootstrapper 或 WebTestContextBootstrapper,这取决于 @WebAppConfiguration 的存在。
由于 TestContextBootstrapper 的 SPI 在未来可能会发生变化(以适应新的需求),我们强烈建议实现者不要直接实现这个接口,而是扩展AbstractTestContextBootstrapper 或其具体子类之一。