@@ -90,35 +90,35 @@ public class TestContextManager {
90
90
91
91
92
92
/**
93
- * Construct a new {@code TestContextManager} for the specified {@linkplain Class test class},
94
- * automatically {@linkplain #registerTestExecutionListeners registering} the necessary
95
- * {@link TestExecutionListener TestExecutionListeners}.
96
- * <p>Delegates to a {@link TestContextBootstrapper} for building the {@code TestContext}
97
- * and retrieving the {@code TestExecutionListeners}.
93
+ * Construct a new {@code TestContextManager} for the supplied {@linkplain Class test class}.
94
+ * <p>Delegates to {@link #TestContextManager(TestContextBootstrapper)} with
95
+ * the {@link TestContextBootstrapper} configured for the test class. If the
96
+ * {@link BootstrapWith @BootstrapWith} annotation is present on the test
97
+ * class, either directly or as a meta-annotation, then its
98
+ * {@link BootstrapWith#value value} will be used as the bootstrapper type;
99
+ * otherwise, the {@link org.springframework.test.context.support.DefaultTestContextBootstrapper
100
+ * DefaultTestContextBootstrapper} will be used.
98
101
* @param testClass the test class to be managed
99
- * @see TestContextBootstrapper#buildTestContext
100
- * @see TestContextBootstrapper#getTestExecutionListeners
101
- * @see #registerTestExecutionListeners
102
+ * @see #TestContextManager(TestContextBootstrapper)
102
103
*/
103
104
public TestContextManager (Class <?> testClass ) {
104
- BootstrapContext bootstrapContext = createBootstrapContext (testClass );
105
- TestContextBootstrapper bootstrapper = BootstrapUtils .resolveTestContextBootstrapper (bootstrapContext );
106
- this .testContext = bootstrapper .buildTestContext ();
107
- registerTestExecutionListeners (bootstrapper .getTestExecutionListeners ());
105
+ this (BootstrapUtils .resolveTestContextBootstrapper (BootstrapUtils .createBootstrapContext (testClass )));
108
106
}
109
107
110
108
/**
111
- * Create the {@code BootstrapContext} for the specified {@linkplain Class test class}.
112
- * <p>The default implementation creates a
113
- * {@link org.springframework.test.context.support.DefaultBootstrapContext DefaultBootstrapContext}
114
- * that uses a
115
- * {@link org.springframework.test.context.support.DefaultCacheAwareContextLoaderDelegate DefaultCacheAwareContextLoaderDelegate}.
116
- * <p>Can be overridden by subclasses as necessary.
117
- * @param testClass the test class for which the bootstrap context should be created
118
- * @return a new {@code BootstrapContext}; never {@code null}
109
+ * Construct a new {@code TestContextManager} using the supplied {@link TestContextBootstrapper}
110
+ * and {@linkplain #registerTestExecutionListeners register} the necessary
111
+ * {@link TestExecutionListener TestExecutionListeners}.
112
+ * <p>Delegates to the supplied {@code TestContextBootstrapper} for building
113
+ * the {@code TestContext} and retrieving the {@code TestExecutionListeners}.
114
+ * @param testContextBootstrapper the bootstrapper to use
115
+ * @see TestContextBootstrapper#buildTestContext
116
+ * @see TestContextBootstrapper#getTestExecutionListeners
117
+ * @see #registerTestExecutionListeners
119
118
*/
120
- protected BootstrapContext createBootstrapContext (Class <?> testClass ) {
121
- return BootstrapUtils .createBootstrapContext (testClass );
119
+ public TestContextManager (TestContextBootstrapper testContextBootstrapper ) {
120
+ this .testContext = testContextBootstrapper .buildTestContext ();
121
+ registerTestExecutionListeners (testContextBootstrapper .getTestExecutionListeners ());
122
122
}
123
123
124
124
/**
0 commit comments