|
||||||||||
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(
Adds matcher to the list of requirements for any thrown
exception. |
void |
expectCause(
Adds matcher to the list of requirements for the cause of
any thrown exception. |
void |
expectMessage(
Adds matcher to the list of requirements for the message returned
from any thrown exception. |
void |
expectMessage(java.lang.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)
TestRule
Statement
to implement this
test-running rule.
apply
in interface TestRule
base
- 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
to the list of requirements for any thrown
exception.
public void expectMessage(java.lang.String substring)
substring
public void expectMessage(matcher)
matcher
to the list of requirements for the message returned
from any thrown exception.
public void expectCause(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 |