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 }