| 
 | ||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.springframework.test.AssertThrows
public abstract class AssertThrows
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 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();
    }
 }
 You might want to compare this class with the
 junit.extensions.ExceptionTestCase class.
 Note: This class requires JDK 1.4 or higher.
| Constructor Summary | |
|---|---|
| AssertThrows(Class expectedException)Create a new instance of the AssertThrowsclass. | |
| AssertThrows(Class expectedException,
             String failureMessage)Create a new instance of the AssertThrowsclass. | |
| Method Summary | |
|---|---|
| protected  void | checkExceptionExpectations(Exception actualException)Does the donkey work of checking (verifying) that the Exceptionthat was thrown in the body of a test is
 an instance of thegetExpectedException()class (or an
 instance of a subclass). | 
| protected  String | createMessageForNoExceptionThrown()Creates the failure message used if the test fails (i.e. the expected exception is not thrown in the body of the test). | 
| protected  String | createMessageForWrongThrownExceptionType(Exception actualException)Creates the failure message used if the wrong type of Exceptionis thrown in the body of the test. | 
| protected  void | doFail()Template method called when the test fails; i.e. the expected Exceptionis not thrown. | 
|  Exception | getActualException()Expose the actual exception thrown from test(), if any. | 
| protected  Class | getExpectedException()Return the Exceptionexpected to be thrown during
 the execution of the surrounding test. | 
| protected  String | getFailureMessage()Return the extra, contextual failure message that will be included in the failure text if the text fails. | 
|  void | runTest()The main template method that drives the running of the test logicand thecheckingof the
 resulting (expected)Exception. | 
|  void | setFailureMessage(String failureMessage)Set the extra, contextual failure message that will be included in the failure text if the text fails. | 
| abstract  void | test()Subclass must override this abstractmethod and
 provide the test logic. | 
| Methods inherited from class java.lang.Object | 
|---|
| clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | 
| Constructor Detail | 
|---|
public AssertThrows(Class expectedException)
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
public AssertThrows(Class expectedException,
                    String failureMessage)
AssertThrows class.
expectedException - the Exception expected to be
 thrown during the execution of the surrounding testfailureMessage - 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| Method Detail | 
|---|
protected Class getExpectedException()
Exception expected to be thrown during
 the execution of the surrounding test.
public void setFailureMessage(String failureMessage)
protected String getFailureMessage()
public abstract void test()
                   throws Exception
abstract method and
 provide the test logic.
Exception - if an error occurs during the execution of the
 aformentioned test logicpublic void runTest()
test logic and the
 checking of the
 resulting (expected) Exception.
test(), 
doFail(), 
checkExceptionExpectations(Exception)protected void doFail()
Exception is not thrown.
 The default implementation simply fails the test via a call to
 Assert.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.
getFailureMessage()protected String createMessageForNoExceptionThrown()
getFailureMessage()protected void checkExceptionExpectations(Exception actualException)
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)protected String createMessageForWrongThrownExceptionType(Exception actualException)
Exception is thrown in the body of the test.
actualException - the actual exception thrown
public final Exception getActualException()
test(), if any.
null if none| 
 | ||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||