42
42
import org .springframework .test .context .junit4 .rules .SpringClassRule ;
43
43
import org .springframework .test .context .junit4 .rules .SpringMethodRule ;
44
44
import org .springframework .test .context .junit4 .statements .RunAfterTestClassCallbacks ;
45
+ import org .springframework .test .context .junit4 .statements .RunAfterTestExecutionCallbacks ;
45
46
import org .springframework .test .context .junit4 .statements .RunAfterTestMethodCallbacks ;
46
47
import org .springframework .test .context .junit4 .statements .RunBeforeTestClassCallbacks ;
48
+ import org .springframework .test .context .junit4 .statements .RunBeforeTestExecutionCallbacks ;
47
49
import org .springframework .test .context .junit4 .statements .RunBeforeTestMethodCallbacks ;
48
50
import org .springframework .test .context .junit4 .statements .SpringFailOnTimeout ;
49
51
import org .springframework .test .context .junit4 .statements .SpringRepeat ;
@@ -270,6 +272,9 @@ protected void runChild(FrameworkMethod frameworkMethod, RunNotifier notifier) {
270
272
* Spring-specific timeouts in that the former execute in a separate
271
273
* thread while the latter simply execute in the main thread (like regular
272
274
* tests).
275
+ * @see #methodInvoker(FrameworkMethod, Object)
276
+ * @see #withBeforeTestExecutionCallbacks(FrameworkMethod, Object, Statement)
277
+ * @see #withAfterTestExecutionCallbacks(FrameworkMethod, Object, Statement)
273
278
* @see #possiblyExpectingExceptions(FrameworkMethod, Object, Statement)
274
279
* @see #withBefores(FrameworkMethod, Object, Statement)
275
280
* @see #withAfters(FrameworkMethod, Object, Statement)
@@ -293,6 +298,8 @@ protected Object runReflectiveCall() throws Throwable {
293
298
}
294
299
295
300
Statement statement = methodInvoker (frameworkMethod , testInstance );
301
+ statement = withBeforeTestExecutionCallbacks (frameworkMethod , testInstance , statement );
302
+ statement = withAfterTestExecutionCallbacks (frameworkMethod , testInstance , statement );
296
303
statement = possiblyExpectingExceptions (frameworkMethod , testInstance , statement );
297
304
statement = withBefores (frameworkMethod , testInstance , statement );
298
305
statement = withAfters (frameworkMethod , testInstance , statement );
@@ -404,6 +411,26 @@ protected long getSpringTimeout(FrameworkMethod frameworkMethod) {
404
411
return TestAnnotationUtils .getTimeout (frameworkMethod .getMethod ());
405
412
}
406
413
414
+ /**
415
+ * Wrap the supplied {@link Statement} with a {@code RunBeforeTestExecutionCallbacks}
416
+ * statement, thus preserving the default functionality while adding support for the
417
+ * Spring TestContext Framework.
418
+ * @see RunBeforeTestExecutionCallbacks
419
+ */
420
+ protected Statement withBeforeTestExecutionCallbacks (FrameworkMethod frameworkMethod , Object testInstance , Statement statement ) {
421
+ return new RunBeforeTestExecutionCallbacks (statement , testInstance , frameworkMethod .getMethod (), getTestContextManager ());
422
+ }
423
+
424
+ /**
425
+ * Wrap the supplied {@link Statement} with a {@code RunAfterTestExecutionCallbacks}
426
+ * statement, thus preserving the default functionality while adding support for the
427
+ * Spring TestContext Framework.
428
+ * @see RunAfterTestExecutionCallbacks
429
+ */
430
+ protected Statement withAfterTestExecutionCallbacks (FrameworkMethod frameworkMethod , Object testInstance , Statement statement ) {
431
+ return new RunAfterTestExecutionCallbacks (statement , testInstance , frameworkMethod .getMethod (), getTestContextManager ());
432
+ }
433
+
407
434
/**
408
435
* Wrap the {@link Statement} returned by the parent implementation with a
409
436
* {@code RunBeforeTestMethodCallbacks} statement, thus preserving the
@@ -414,8 +441,7 @@ protected long getSpringTimeout(FrameworkMethod frameworkMethod) {
414
441
@ Override
415
442
protected Statement withBefores (FrameworkMethod frameworkMethod , Object testInstance , Statement statement ) {
416
443
Statement junitBefores = super .withBefores (frameworkMethod , testInstance , statement );
417
- return new RunBeforeTestMethodCallbacks (junitBefores , testInstance , frameworkMethod .getMethod (),
418
- getTestContextManager ());
444
+ return new RunBeforeTestMethodCallbacks (junitBefores , testInstance , frameworkMethod .getMethod (), getTestContextManager ());
419
445
}
420
446
421
447
/**
@@ -428,8 +454,7 @@ protected Statement withBefores(FrameworkMethod frameworkMethod, Object testInst
428
454
@ Override
429
455
protected Statement withAfters (FrameworkMethod frameworkMethod , Object testInstance , Statement statement ) {
430
456
Statement junitAfters = super .withAfters (frameworkMethod , testInstance , statement );
431
- return new RunAfterTestMethodCallbacks (junitAfters , testInstance , frameworkMethod .getMethod (),
432
- getTestContextManager ());
457
+ return new RunAfterTestMethodCallbacks (junitAfters , testInstance , frameworkMethod .getMethod (), getTestContextManager ());
433
458
}
434
459
435
460
/**
0 commit comments