org.junit.runner.notification.Failure Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of junit Show documentation
Show all versions of junit Show documentation
JUnit is a unit testing framework for Java, created by Erich Gamma and Kent Beck.
package org.junit.runner.notification;
import java.io.Serializable;
import org.junit.internal.Throwables;
import org.junit.runner.Description;
/**
* A Failure
holds a description of the failed test and the
* exception that was thrown while running it. In most cases the {@link org.junit.runner.Description}
* will be of a single test. However, if problems are encountered while constructing the
* test (for example, if a {@link org.junit.BeforeClass} method is not static), it may describe
* something other than a single test.
*
* @since 4.0
*/
public class Failure implements Serializable {
private static final long serialVersionUID = 1L;
/*
* We have to use the f prefix until the next major release to ensure
* serialization compatibility.
* See https://github.com/junit-team/junit4/issues/976
*/
private final Description fDescription;
private final Throwable fThrownException;
/**
* Constructs a Failure
with the given description and exception.
*
* @param description a {@link org.junit.runner.Description} of the test that failed
* @param thrownException the exception that was thrown while running the test
*/
public Failure(Description description, Throwable thrownException) {
this.fThrownException = thrownException;
this.fDescription = description;
}
/**
* @return a user-understandable label for the test
*/
public String getTestHeader() {
return fDescription.getDisplayName();
}
/**
* @return the raw description of the context of the failure.
*/
public Description getDescription() {
return fDescription;
}
/**
* @return the exception thrown
*/
public Throwable getException() {
return fThrownException;
}
@Override
public String toString() {
return getTestHeader() + ": " + fThrownException.getMessage();
}
/**
* Gets the printed form of the exception and its stack trace.
*/
public String getTrace() {
return Throwables.getStacktrace(getException());
}
/**
* Gets a the printed form of the exception, with a trimmed version of the stack trace.
* This method will attempt to filter out frames of the stack trace that are below
* the test method call.
*/
public String getTrimmedTrace() {
return Throwables.getTrimmedStackTrace(getException());
}
/**
* Convenience method
*
* @return the message of the thrown exception
*/
public String getMessage() {
return getException().getMessage();
}
}