A {@link TestExecutionListener} implementation that works by chaining together other {@link TestExecutionListener}s and ensures that methods are called in the correct order. The {@link #prepareTestInstance}, {@link #beforeTestClass}and {@link #afterTestClass} methods will delegate to the chain in the order that it is defined. The{@link #afterTestClass} and {@link #afterTestMethod} methods will delegate in reverse order. methods.
For example, a typical call on a chain containing items "a" and "b" would be: a.beforeTestMethod
, b.beforeTestMethod
, b.afterTestMethod
, a.afterTestMethod
.
@author Phillip Webb