org.junit.rules
Class TestWatcher
java.lang.Objectorg.junit.rules.TestWatcher
- All Implemented Interfaces:
- TestRule
- Direct Known Subclasses:
- TestName
-
public abstract class TestWatcher
- extends Object
- implements TestRule
TestWatcher is a base class for Rules that take note of the testing action, without modifying it. For example, this class will keep a log of each passing and failing test:
public static class WatchmanTest { private static String watchedLog; @Rule(order = Integer.MIN_VALUE) public TestWatcher watchman= new TestWatcher() { @Override protected void failed(Throwable e, Description description) { watchedLog+= description + "\n"; } @Override protected void succeeded(Description description) { watchedLog+= description + " " + "success!\n"; } }; @Test public void fails() { fail(); } @Test public void succeeds() { } }
It is recommended to always set the order
of the TestWatcher
to Integer.MIN_VALUE
so that it encloses all other rules. Otherwise it may see failed tests as successful and vice versa if some rule changes the result of a test (e.g. ErrorCollector
or ExpectedException
).
- Since:
- 4.9
Constructor Summary | |
---|---|
TestWatcher() |
Method Summary | |
---|---|
Statement |
apply(Statement base, Description description) Modifies the method-running Statement to implement this test-running rule. |
protected void |
failed(Throwable e, Description description) Invoked when a test fails |
protected void |
finished(Description description) Invoked when a test method finishes (whether passing or failing) |
protected void |
skipped(AssumptionViolatedException e, Description description) Invoked when a test is skipped due to a failed assumption. |
protected void |
skipped(org.junit.internal.AssumptionViolatedException e, Description description) Deprecated. use skipped(AssumptionViolatedException, Description) |
protected void |
starting(Description description) Invoked when a test is about to start |
protected void |
succeeded(Description description) Invoked when a test succeeds |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
TestWatcher
public TestWatcher()
Method Detail |
---|
apply
public Statement apply(Statement base, Description description)
-
Description copied from interface:
TestRule
-
Modifies the method-running
Statement
to implement this test-running rule. -
- Parameters:
-
base
- TheStatement
to be modified -
description
- ADescription
of the test implemented inbase
- Returns:
-
a new statement, which may be the same as
base
, a wrapper aroundbase
, or a completely new Statement.
succeeded
protected void succeeded(Description description)
-
Invoked when a test succeeds
-
-
failed
protected void failed(Throwable e, Description description)
-
Invoked when a test fails
-
-
skipped
protected void skipped(AssumptionViolatedException e, Description description)
-
Invoked when a test is skipped due to a failed assumption.
-
-
skipped
@Deprecated protected void skipped(org.junit.internal.AssumptionViolatedException e, Description description)
-
Deprecated.
use
skipped(AssumptionViolatedException, Description)
-
Invoked when a test is skipped due to a failed assumption.
-
-
starting
protected void starting(Description description)
-
Invoked when a test is about to start
-
-
finished
protected void finished(Description description)
-
Invoked when a test method finishes (whether passing or failing)
-
-