org.springframework.test.context.junit4.statements

## Class RunAfterTestMethodCallbacks

- java.lang.Object
- - org.junit.runners.model.Statement
  - - org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks

    public class RunAfterTestMethodCallbacks
    extends org.junit.runners.model.Statement

`RunAfterTestMethodCallbacks` is a custom JUnit 4.5+ `Statement` which allows the Spring TestContext Framework to be plugged into the JUnit execution chain by calling `afterTestMethod()` on the supplied `TestContextManager`.

Since:
  3.0
Author:
  Sam Brannen
See Also:
  `evaluate()`, `RunBeforeTestMethodCallbacks`

### Constructor Summary

Constructors
Constructor and Description
`RunAfterTestMethodCallbacks(org.junit.runners.model.Statement next, Object testInstance, Method testMethod, TestContextManager testContextManager)` Constructs a new `RunAfterTestMethodCallbacks` statement.

### Method Summary

Methods
`void` `evaluate()` Invokes the next `Statement` in the execution chain (typically an instance of `RunAfters`), catching any exceptions thrown, and then calls `TestContextManager.afterTestMethod(Object, Method, Throwable)` with the first caught exception (if any).

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### RunAfterTestMethodCallbacks

    public RunAfterTestMethodCallbacks(org.junit.runners.model.Statement next,
                               Object testInstance,
                               Method testMethod,
                               TestContextManager testContextManager)

Constructs a new `RunAfterTestMethodCallbacks` statement.

Parameters:
  `next` - the next `Statement` in the execution chain
  `testInstance` - the current test instance (never `null`)
  `testMethod` - the test method which has just been executed on the test instance
  `testContextManager` - the TestContextManager upon which to call `afterTestMethod()`

### Method Detail

#### evaluate

    public void evaluate()
                  throws Throwable

Invokes the next `Statement` in the execution chain (typically an instance of `RunAfters`), catching any exceptions thrown, and then calls `TestContextManager.afterTestMethod(Object, Method, Throwable)` with the first caught exception (if any). If the call to `afterTestMethod()` throws an exception, it will also be tracked. Multiple exceptions will be combined into a `MultipleFailureException`.

Specified by:
  `evaluate` in class `org.junit.runners.model.Statement`
Throws:
  `Throwable`