org.junit.rules
Class ErrorCollector

java.lang.Object
  extended by org.junit.rules.Verifier
      extended by org.junit.rules.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.
        }
 }
 


Constructor Summary
ErrorCollector()
           
 
Method Summary
 void addError(Throwable error)
          Adds a Throwable to the table.
 Object checkSucceeds(Callable<Object> callable)
          Adds to the table the exception, if any, thrown from callable.
<T> void
checkThat(T value, 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 org.junit.rules.Verifier
apply
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ErrorCollector

public ErrorCollector()
Method Detail

verify

protected void verify()
               throws 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:
Throwable

addError

public void addError(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,
                          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.


checkSucceeds

public Object checkSucceeds(Callable<Object> 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.