blob: d1ddfbc293570716addf45f9a8e0bd248bce36ff [file] [log] [blame]
package junit.framework;
import org.junit.internal.Throwables;
/**
* A {@code TestFailure} collects a failed test together with
* the caught exception.
*
* @see TestResult
*/
public class TestFailure {
protected Test fFailedTest;
protected Throwable fThrownException;
/**
* Constructs a TestFailure with the given test and exception.
*/
public TestFailure(Test failedTest, Throwable thrownException) {
fFailedTest = failedTest;
fThrownException = thrownException;
}
/**
* Gets the failed test.
*/
public Test failedTest() {
return fFailedTest;
}
/**
* Gets the thrown exception.
*/
public Throwable thrownException() {
return fThrownException;
}
/**
* Returns a short description of the failure.
*/
@Override
public String toString() {
return fFailedTest + ": " + fThrownException.getMessage();
}
/**
* Returns a String containing the stack trace of the error
* thrown by TestFailure.
*/
public String trace() {
return Throwables.getStacktrace(thrownException());
}
/**
* Returns a String containing the message from the thrown exception.
*/
public String exceptionMessage() {
return thrownException().getMessage();
}
/**
* Returns {@code true} if the error is considered a failure
* (i.e. if it is an instance of {@code AssertionFailedError}),
* {@code false} otherwise.
*/
public boolean isFailure() {
return thrownException() instanceof AssertionFailedError;
}
}