Home | History | Annotate | Download | only in framework
      1 package junit.framework;
      2 
      3 import java.io.PrintWriter;
      4 import java.io.StringWriter;
      5 
      6 
      7 /**
      8  * A {@code TestFailure} collects a failed test together with
      9  * the caught exception.
     10  *
     11  * @see TestResult
     12  */
     13 public class TestFailure {
     14     protected Test fFailedTest;
     15     protected Throwable fThrownException;
     16 
     17     /**
     18      * Constructs a TestFailure with the given test and exception.
     19      */
     20     public TestFailure(Test failedTest, Throwable thrownException) {
     21         fFailedTest = failedTest;
     22         fThrownException = thrownException;
     23     }
     24 
     25     /**
     26      * Gets the failed test.
     27      */
     28     public Test failedTest() {
     29         return fFailedTest;
     30     }
     31 
     32     /**
     33      * Gets the thrown exception.
     34      */
     35     public Throwable thrownException() {
     36         return fThrownException;
     37     }
     38 
     39     /**
     40      * Returns a short description of the failure.
     41      */
     42     @Override
     43     public String toString() {
     44         return fFailedTest + ": " + fThrownException.getMessage();
     45     }
     46 
     47     /**
     48      * Returns a String containing the stack trace of the error
     49      * thrown by TestFailure.
     50      */
     51     public String trace() {
     52         StringWriter stringWriter = new StringWriter();
     53         PrintWriter writer = new PrintWriter(stringWriter);
     54         thrownException().printStackTrace(writer);
     55         return stringWriter.toString();
     56     }
     57 
     58     /**
     59      * Returns a String containing the message from the thrown exception.
     60      */
     61     public String exceptionMessage() {
     62         return thrownException().getMessage();
     63     }
     64 
     65     /**
     66      * Returns {@code true} if the error is considered a failure
     67      * (i.e. if it is an instance of {@code AssertionFailedError}),
     68      * {@code false} otherwise.
     69      */
     70     public boolean isFailure() {
     71         return thrownException() instanceof AssertionFailedError;
     72     }
     73 }