org.junit.rules
Interface TestRule

All Known Implementing Classes:
ErrorCollector, ExpectedException, ExternalResource, RuleChain, TemporaryFolder, TestName, TestWatcher, Timeout, Verifier

public interface TestRule

A TestRule is an alteration in how a test method, or set of test methods, is run and reported. A TestRule may add additional checks that cause a test that would otherwise fail to pass, or it may perform necessary setup or cleanup for tests, or it may observe test execution to report it elsewhere. TestRules can do everything that could be done previously with methods annotated with Before, After, BeforeClass, or AfterClass, but they are more powerful, and more easily shared between projects and classes. The default JUnit test runners for suites and individual test cases recognize TestRules introduced in two different ways. Rule annotates method-level TestRules, and ClassRule annotates class-level TestRules. See Javadoc for those annotations for more information. Multiple TestRules can be applied to a test or suite execution. The Statement that executes the method or suite is passed to each annotated Rule in turn, and each may return a substitute or modified Statement, which is passed to the next Rule, if any. For examples of how this can be useful, see these provided TestRules, or write your own:

Since:
4.9

Method Summary
 Statement apply(Statement base, Description description)
          Modifies the method-running Statement to implement this test-running rule.
 

Method Detail

apply

Statement apply(Statement base,
                Description description)
Modifies the method-running Statement to implement this test-running rule.

Parameters:
base - The Statement to be modified
description - A Description of the test implemented in base
Returns:
a new statement, which may be the same as base, a wrapper around base, or a completely new Statement.