org.junit.rules
Class TestWatcher

java.lang.Object
  extended by org.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.

Specified by:
apply in interface TestRule
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.

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)



Copyright © 2002–2021 JUnit. All rights reserved.