1 package junit.framework; 2 3 import java.io.PrintWriter; 4 import java.io.StringWriter; 5 6 7 /** 8 * A <code>TestFailure</code> collects a failed test together with 9 * the caught exception. 10 * @see TestResult 11 */ 12 public class TestFailure extends Object { 13 protected Test fFailedTest; 14 protected Throwable fThrownException; 15 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 * Gets the failed test. 26 */ 27 public Test failedTest() { 28 return fFailedTest; 29 } 30 /** 31 * Gets the thrown exception. 32 */ 33 public Throwable thrownException() { 34 return fThrownException; 35 } 36 /** 37 * Returns a short description of the failure. 38 */ 39 public String toString() { 40 StringBuffer buffer= new StringBuffer(); 41 buffer.append(fFailedTest+": "+fThrownException.getMessage()); 42 return buffer.toString(); 43 } 44 public String trace() { 45 StringWriter stringWriter= new StringWriter(); 46 PrintWriter writer= new PrintWriter(stringWriter); 47 thrownException().printStackTrace(writer); 48 StringBuffer buffer= stringWriter.getBuffer(); 49 return buffer.toString(); 50 } 51 public String exceptionMessage() { 52 return thrownException().getMessage(); 53 } 54 public boolean isFailure() { 55 return thrownException() instanceof AssertionFailedError; 56 } 57 } 58