public class SpringMethodRule extends Object implements MethodRule
SpringMethodRule is a custom JUnit MethodRule that
 supports instance-level and method-level features of the
 Spring TestContext Framework in standard JUnit tests by means
 of the TestContextManager and associated support classes and
 annotations.
 In contrast to the SpringJUnit4ClassRunner, Spring's rule-based JUnit support has the advantage
 that it is independent of any Runner and
 can therefore be combined with existing alternative runners like JUnit's
 Parameterized or third-party runners such as the MockitoJUnitRunner.
 
In order to achieve the same functionality as the SpringJUnit4ClassRunner,
 however, a SpringMethodRule must be combined with a SpringClassRule,
 since SpringMethodRule only supports the instance-level and method-level
 features of the SpringJUnit4ClassRunner.
 
 public class ExampleSpringIntegrationTest {
    @ClassRule
    public static final SpringClassRule SPRING_CLASS_RULE = new SpringClassRule();
    @Rule
    public final SpringMethodRule springMethodRule = new SpringMethodRule();
    // ...
 }The following list constitutes all annotations currently supported directly
 or indirectly by SpringMethodRule. (Note that additional annotations
 may be supported by various
 TestExecutionListener or
 TestContextBootstrapper
 implementations.)
 
NOTE: As of Spring Framework 4.3, this class requires JUnit 4.12 or higher.
apply(Statement, FrameworkMethod, Object), 
SpringClassRule, 
TestContextManager, 
SpringJUnit4ClassRunner| Constructor and Description | 
|---|
| SpringMethodRule() | 
| Modifier and Type | Method and Description | 
|---|---|
| Statement | apply(Statement base,
     FrameworkMethod frameworkMethod,
     Object testInstance)Apply instance-level and method-level features of
 the Spring TestContext Framework to the supplied  basestatement. | 
public Statement apply(Statement base, FrameworkMethod frameworkMethod, Object testInstance)
base
 statement.
 Specifically, this method invokes the
 prepareTestInstance(),
 beforeTestMethod(), and
 afterTestMethod() methods
 on the TestContextManager, potentially with Spring timeouts
 and repetitions.
 
In addition, this method checks whether the test is enabled in
 the current execution environment. This prevents methods with a
 non-matching @IfProfileValue annotation from running altogether,
 even skipping the execution of prepareTestInstance() methods
 in TestExecutionListeners.
apply in interface MethodRulebase - the base Statement that this rule should be applied toframeworkMethod - the method which is about to be invoked on the test instancetestInstance - the current test instancebase with instance-level
 and method-level features of the Spring TestContext FrameworkwithBeforeTestMethodCallbacks(org.junit.runners.model.Statement, org.junit.runners.model.FrameworkMethod, java.lang.Object, org.springframework.test.context.TestContextManager), 
withAfterTestMethodCallbacks(org.junit.runners.model.Statement, org.junit.runners.model.FrameworkMethod, java.lang.Object, org.springframework.test.context.TestContextManager), 
withPotentialRepeat(org.junit.runners.model.Statement, org.junit.runners.model.FrameworkMethod, java.lang.Object), 
withPotentialTimeout(org.junit.runners.model.Statement, org.junit.runners.model.FrameworkMethod, java.lang.Object), 
withTestInstancePreparation(org.junit.runners.model.Statement, java.lang.Object, org.springframework.test.context.TestContextManager), 
withProfileValueCheck(org.junit.runners.model.Statement, org.junit.runners.model.FrameworkMethod, java.lang.Object)