public interface TestContextBootstrapper
TestContextBootstrapper defines the SPI for bootstrapping the
 Spring TestContext Framework.
 A TestContextBootstrapper is used by the TestContextManager to
 get the TestExecutionListeners for the
 current test and to build the TestContext that
 it manages.
 
A custom bootstrapping strategy can be configured for a test class (or
 test class hierarchy) via @BootstrapWith, either
 directly or as a meta-annotation.
 
If a bootstrapper is not explicitly configured via @BootstrapWith,
 either the DefaultTestContextBootstrapper or the
 WebTestContextBootstrapper will be used, depending on the presence of
 @WebAppConfiguration.
 
Concrete implementations must provide a public no-args constructor.
 
WARNING: this SPI will likely change in the future in
 order to accommodate new requirements. Implementers are therefore strongly encouraged
 not to implement this interface directly but rather to extend
 AbstractTestContextBootstrapper or one of its concrete subclasses instead.
BootstrapWith, 
BootstrapContext| Modifier and Type | Method and Description | 
|---|---|
MergedContextConfiguration | 
buildMergedContextConfiguration()
Build the merged context configuration
 for the test class in the  
BootstrapContext associated with this
 bootstrapper. | 
TestContext | 
buildTestContext()
Build the  
TestContext for the BootstrapContext
 associated with this bootstrapper. | 
BootstrapContext | 
getBootstrapContext()
Get the  
BootstrapContext associated with this bootstrapper. | 
List<TestExecutionListener> | 
getTestExecutionListeners()
Get a list of newly instantiated  
TestExecutionListeners
 for the test class in the BootstrapContext associated with this bootstrapper. | 
void | 
setBootstrapContext(BootstrapContext bootstrapContext)
Set the  
BootstrapContext to be used by this bootstrapper. | 
void setBootstrapContext(BootstrapContext bootstrapContext)
BootstrapContext to be used by this bootstrapper.BootstrapContext getBootstrapContext()
BootstrapContext associated with this bootstrapper.TestContext buildTestContext()
TestContext for the BootstrapContext
 associated with this bootstrapper.TestContext, never nullbuildMergedContextConfiguration()MergedContextConfiguration buildMergedContextConfiguration()
BootstrapContext associated with this
 bootstrapper.
 Implementations must take the following into account when building the merged configuration:
@ContextHierarchy
 and @ContextConfiguration@ActiveProfilesContextConfiguration.initializers()@TestPropertySourceConsult the Javadoc for the aforementioned annotations for details on the required semantics.
Note that the implementation of buildTestContext() should
 typically delegate to this method when constructing the TestContext.
 
When determining which ContextLoader to use for a given test
 class, the following algorithm should be used:
 
ContextLoader class has been explicitly declared via
 ContextConfiguration.loader(), use it.ContextLoader class to use as a default.nullbuildTestContext()List<TestExecutionListener> getTestExecutionListeners()
TestExecutionListeners
 for the test class in the BootstrapContext associated with this bootstrapper.
 If @TestExecutionListeners is not
 present on the test class in the BootstrapContext,
 default listeners should be returned. Furthermore, default
 listeners must be sorted using
 AnnotationAwareOrderComparator.
 
Concrete implementations are free to determine what comprises the
 set of default listeners. However, by default, the Spring TestContext
 Framework will use the
 SpringFactoriesLoader
 mechanism to look up all TestExecutionListener class names
 configured in all META-INF/spring.factories files on the classpath.
 
The inheritListeners
 flag of @TestExecutionListeners must be
 taken into consideration. Specifically, if the inheritListeners
 flag is set to true, listeners declared for a given test class must
 be appended to the end of the list of listeners declared in superclasses.
TestExecutionListener instances