org.junit.rules
Interface TestRule
- All Known Implementing Classes:
- DisableOnDebug, ErrorCollector, ExpectedException, ExternalResource, RuleChain, Stopwatch, 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. TestRule
s 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 TestRule
s introduced in two different ways. Rule
annotates method-level TestRule
s, and ClassRule
annotates class-level TestRule
s. See Javadoc for those annotations for more information. Multiple TestRule
s 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
apply
Statement apply(Statement base, Description description)
- Modifies the method-running
Statement
to implement this test-running rule.
- Parameters:
base
- The Statement
to be modifieddescription
- 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.
Copyright © 2002–2016 JUnit. All rights reserved.