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
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private java.util.List<java.lang.Throwable> errors  
    • 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.
      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
    • Field Detail

      • errors

        private java.util.List<java.lang.Throwable> errors
    • Constructor Detail

      • ErrorCollector

        public ErrorCollector()
    • 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.