Package org.junit.rules
Class RuleChain
- java.lang.Object
-
- org.junit.rules.RuleChain
-
- All Implemented Interfaces:
TestRule
public class RuleChain extends Object implements TestRule
The RuleChain rule allows ordering of TestRules. You create aRuleChainwithouterRule(TestRule)and subsequent calls ofaround(TestRule):public static class UseRuleChain { @Rule public RuleChain chain= RuleChain .outerRule(new LoggingRule("outer rule") .around(new LoggingRule("middle rule") .around(new LoggingRule("inner rule"); @Test public void example() { assertTrue(true); } }writes the logstarting outer rule starting middle rule starting inner rule finished inner rule finished middle rule finished outer rule
- Since:
- 4.10
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description Statementapply(Statement base, Description description)Modifies the method-runningStatementto implement this test-running rule.RuleChainaround(TestRule enclosedRule)Create a newRuleChain, which encloses thenextRulewith the rules of the currentRuleChain.static RuleChainemptyRuleChain()Returns aRuleChainwithout aTestRule.static RuleChainouterRule(TestRule outerRule)Returns aRuleChainwith a singleTestRule.
-
-
-
Method Detail
-
emptyRuleChain
public static RuleChain emptyRuleChain()
- Returns:
- a
RuleChainwithout aTestRule.
-
outerRule
public static RuleChain outerRule(TestRule outerRule)
- Parameters:
outerRule- the outer rule of theRuleChain.- Returns:
- a
RuleChainwith a singleTestRule.
-
around
public RuleChain around(TestRule enclosedRule)
Create a newRuleChain, which encloses thenextRulewith the rules of the currentRuleChain.- Parameters:
enclosedRule- the rule to enclose.- Returns:
- a new
RuleChain.
-
apply
public Statement apply(Statement base, Description description)
Modifies the method-runningStatementto implement this test-running rule.- Specified by:
applyin interfaceTestRule- Parameters:
base- TheStatementto be modifieddescription- ADescriptionof the test implemented inbase- Returns:
- a new statement, which may be the same as
base, a wrapper aroundbase, or a completely new Statement.
-
-