Class ErrorCollector

  • All Implemented Interfaces:
    TestRule

    public class ErrorCollector
    extends Verifier
    The ErrorCollector rule allows execution of a test to continue after the first problem is found (for example, to collect _all_ the incorrect rows in a table, and report them all at once):
     public static class UsesErrorCollectorTwice {
            @Rule
            public ErrorCollector collector= new ErrorCollector();
    
     @Test
     public void example() {
          collector.addError(new Throwable("first thing went wrong"));
          collector.addError(new Throwable("second thing went wrong"));
          collector.checkThat(getResult(), not(containsString("ERROR!")));
          // all lines will run, and then a combined failure logged at the end.
         }
     }
     
    Since:
    4.7
    • Constructor Summary

      Constructors 
      Constructor Description
      ErrorCollector()  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addError​(java.lang.Throwable error)
      Adds a Throwable to the table.
      <T> T checkSucceeds​(java.util.concurrent.Callable<T> callable)
      Adds to the table the exception, if any, thrown from callable.
      <T> void checkThat​(java.lang.String reason, T value, org.hamcrest.Matcher<T> matcher)
      Adds a failure with the given reason to the table if matcher does not match value.
      <T> void checkThat​(T value, org.hamcrest.Matcher<T> matcher)
      Adds a failure to the table if matcher does not match value.
      void checkThrows​(java.lang.Class<? extends java.lang.Throwable> expectedThrowable, ThrowingRunnable runnable)
      Adds a failure to the table if runnable does not throw an exception of type expectedThrowable when executed.
      protected void verify()
      Override this to add verification logic.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Method Detail

      • verify

        protected void verify()
                       throws java.lang.Throwable
        Description copied from class: Verifier
        Override this to add verification logic. Overrides should throw an exception to indicate that verification failed.
        Overrides:
        verify in class Verifier
        Throws:
        java.lang.Throwable
      • addError

        public void addError​(java.lang.Throwable error)
        Adds a Throwable to the table. Execution continues, but the test will fail at the end.
      • checkThat

        public <T> void checkThat​(T value,
                                  org.hamcrest.Matcher<T> matcher)
        Adds a failure to the table if matcher does not match value. Execution continues, but the test will fail at the end if the match fails.
      • checkThat

        public <T> void checkThat​(java.lang.String reason,
                                  T value,
                                  org.hamcrest.Matcher<T> matcher)
        Adds a failure with the given reason to the table if matcher does not match value. Execution continues, but the test will fail at the end if the match fails.
      • checkSucceeds

        public <T> T checkSucceeds​(java.util.concurrent.Callable<T> callable)
        Adds to the table the exception, if any, thrown from callable. Execution continues, but the test will fail at the end if callable threw an exception.
      • checkThrows

        public void checkThrows​(java.lang.Class<? extends java.lang.Throwable> expectedThrowable,
                                ThrowingRunnable runnable)
        Adds a failure to the table if runnable does not throw an exception of type expectedThrowable when executed. Execution continues, but the test will fail at the end if the runnable does not throw an exception, or if it throws a different exception.
        Parameters:
        expectedThrowable - the expected type of the exception
        runnable - a function that is expected to throw an exception when executed
        Since:
        4.13