Class TestWatcher

  • All Implemented Interfaces:
    TestRule
    Direct Known Subclasses:
    TestName

    public abstract class TestWatcher
    extends java.lang.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
      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() {
         }
     }
     
    Since:
    4.9
    • Constructor Summary

      Constructors 
      Constructor Description
      TestWatcher()  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      Statement apply​(Statement base, Description description)
      Modifies the method-running Statement to implement this test-running rule.
      protected void failed​(java.lang.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​(org.junit.internal.AssumptionViolatedException e, Description description)
      Invoked when a test is skipped due to a failed assumption.
      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​(java.lang.Throwable e,
                              Description description)
        Invoked when a test fails
      • skipped

        protected void skipped​(org.junit.internal.AssumptionViolatedException e,
                               Description 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)