|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectorg.junit.rules.ExpectedException
public class ExpectedException
The ExpectedException rule allows in-test specification of expected exception types and messages:
// These tests all pass.
public static class HasExpectedException {
@Rule
public ExpectedException thrown= ExpectedException.none();
@Test
public void throwsNothing() {
// no exception expected, none thrown: passes.
}
@Test
public void throwsNullPointerException() {
thrown.expect(NullPointerException.class);
throw new NullPointerException();
}
@Test
public void throwsNullPointerExceptionWithMessage() {
thrown.expect(NullPointerException.class);
thrown.expectMessage("happened?");
thrown.expectMessage(startsWith("What"));
throw new NullPointerException("What happened?");
}
@Test
public void throwsIllegalArgumentExceptionWithMessageAndCause() {
NullPointerException expectedCause = new NullPointerException();
thrown.expect(IllegalArgumentException.class);
thrown.expectMessage("What");
thrown.expectCause(is(expectedCause));
throw new IllegalArgumentException("What happened?", cause);
}
}
By default ExpectedException rule doesn't handle AssertionErrors and
AssumptionViolatedExceptions, because such exceptions are used by JUnit. If
you want to handle such exceptions you have to call @link
handleAssertionErrors() or @link
handleAssumptionViolatedExceptions().
// These tests all pass.
public static class HasExpectedException {
@Rule
public ExpectedException thrown= ExpectedException.none();
@Test
public void throwExpectedAssertionError() {
thrown.handleAssertionErrors();
thrown.expect(AssertionError.class);
throw new AssertionError();
}
@Test
public void throwExpectAssumptionViolatedException() {
thrown.handleAssumptionViolatedExceptions();
thrown.expect(AssumptionViolatedException.class);
throw new AssumptionViolatedException("");
}
}
| Method Summary | |
|---|---|
Statement |
apply(Statement base,
Description description)
Modifies the method-running Statement to implement this
test-running rule. |
void |
expect(Class<? extends Throwable> type)
Adds to the list of requirements for any thrown exception that it should be an instance of type |
void |
expect(Matcher<?> matcher)
Adds matcher to the list of requirements for any thrown
exception. |
void |
expectCause(Matcher<? extends Throwable> expectedCause)
Adds matcher to the list of requirements for the cause of
any thrown exception. |
void |
expectMessage(Matcher<String> matcher)
Adds matcher to the list of requirements for the message returned
from any thrown exception. |
void |
expectMessage(String substring)
Adds to the list of requirements for any thrown exception that it should contain string substring |
ExpectedException |
handleAssertionErrors()
|
ExpectedException |
handleAssumptionViolatedExceptions()
|
static ExpectedException |
none()
|
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Method Detail |
|---|
public static ExpectedException none()
public ExpectedException handleAssertionErrors()
public ExpectedException handleAssumptionViolatedExceptions()
public Statement apply(Statement base,
Description description)
TestRuleStatement to implement this
test-running rule.
apply in interface TestRulebase - The Statement to be modifieddescription - A Description of the test implemented in base
base,
a wrapper around base, or a completely new Statement.public void expect(Matcher<?> matcher)
matcher to the list of requirements for any thrown
exception.
public void expect(Class<? extends Throwable> type)
type
public void expectMessage(String substring)
substring
public void expectMessage(Matcher<String> matcher)
matcher to the list of requirements for the message returned
from any thrown exception.
public void expectCause(Matcher<? extends Throwable> expectedCause)
matcher to the list of requirements for the cause of
any thrown exception.
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||