java.lang.Object | |
↳ | org.springframework.test.AssertThrows |
This class is deprecated.
favor use of JUnit 4's @Test(expected=...)
support
Simple method object encapsulation of the 'test-for-Exception' scenario (for JUnit).
Used like so:
// the class under test public class Foo { public void someBusinessLogic(String name) { if (name == null) { throw new IllegalArgumentException("The 'name' argument is required"); } // rest of business logic here... } }The test for the above bad argument path can be expressed using the
AssertThrows
class like so:
public class FooTest { public void testSomeBusinessLogicBadArgumentPath() { new AssertThrows(IllegalArgumentException.class) { public void test() { new Foo().someBusinessLogic(null); } }.runTest(); } }This will result in the test passing if the
Foo.someBusinessLogic(..)
method threw an java.lang.IllegalArgumentException; if it did not, the
test would fail with the following message:
"Must have thrown a [class java.lang.IllegalArgumentException]"If the wrong type of
Exception
was thrown, the
test will also fail, this time with a message similar to the following:
"junit.framework.AssertionFailedError: Was expecting a [class java.lang.UnsupportedOperationException] to be thrown, but instead a [class java.lang.IllegalArgumentException] was thrown"The test for the correct
Exception
respects polymorphism,
so you can test that any old Exception
is thrown like so:
public class FooTest { public void testSomeBusinessLogicBadArgumentPath() { // any Exception will do... new AssertThrows(Exception.class) { public void test() { new Foo().someBusinessLogic(null); } }.runTest(); } }Intended for use with JUnit 4 and TestNG (as of Spring 3.0). You might want to compare this class with the junit.extensions.ExceptionTestCase class.
Public Constructors | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Create a new instance of the
AssertThrows class. | |||||||||||
Create a new instance of the
AssertThrows class. |
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Expose the actual exception thrown from
test() , if any. | |||||||||||
The main template method that drives the running of the
test logic and the
checking of the
resulting (expected) Exception . | |||||||||||
Set the extra, contextual failure message that will be included
in the failure text if the text fails.
| |||||||||||
Subclass must override this
abstract method and
provide the test logic. |
Protected Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Does the donkey work of checking (verifying) that the
Exception that was thrown in the body of a test is
an instance of the getExpectedException() class (or an
instance of a subclass). | |||||||||||
Creates the failure message used if the test fails
(i.e.
| |||||||||||
Creates the failure message used if the wrong type
of
Exception is thrown in the body of the test. | |||||||||||
Template method called when the test fails; i.e.
| |||||||||||
Return the
Exception expected to be thrown during
the execution of the surrounding test. | |||||||||||
Return the extra, contextual failure message that will be included
in the failure text if the text fails.
|
[Expand]
Inherited Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
![]() |
Create a new instance of the AssertThrows
class.
expectedException | the Exception expected to be
thrown during the execution of the surrounding test |
---|
IllegalArgumentException | if the supplied expectedException is
null ; or if said argument is not an Exception -derived class
|
---|
Create a new instance of the AssertThrows
class.
expectedException | the Exception expected to be
thrown during the execution of the surrounding test |
---|---|
failureMessage | the extra, contextual failure message that will be
included in the failure text if the text fails (can be null ) |
IllegalArgumentException | if the supplied expectedException is
null ; or if said argument is not an Exception -derived class
|
---|
Expose the actual exception thrown from test()
, if any.
null
if none
The main template method that drives the running of the
test logic
and the
checking
of the
resulting (expected) Exception
.
Set the extra, contextual failure message that will be included in the failure text if the text fails.
Subclass must override this abstract
method and
provide the test logic.
Exception | if an error occurs during the execution of the aformentioned test logic |
---|
Does the donkey work of checking (verifying) that the
Exception
that was thrown in the body of a test is
an instance of the getExpectedException()
class (or an
instance of a subclass).
If you want to customise the failure message, consider overriding
createMessageForWrongThrownExceptionType(Exception)
.
actualException | the Exception that has been thrown
in the body of a test method (will never be null )
|
---|
Creates the failure message used if the test fails (i.e. the expected exception is not thrown in the body of the test).
Creates the failure message used if the wrong type
of Exception
is thrown in the body of the test.
actualException | the actual exception thrown |
---|
Template method called when the test fails; i.e. the expected
Exception
is not thrown.
The default implementation simply fails the test via a call to
fail(String)
.
If you want to customise the failure message, consider overriding
createMessageForNoExceptionThrown()
, and / or supplying an
extra, contextual failure message via the appropriate constructor overload.
Return the Exception
expected to be thrown during
the execution of the surrounding test.
Return the extra, contextual failure message that will be included in the failure text if the text fails.