| package junit.extensions; |
| |
| import junit.framework.*; |
| |
| /** |
| * A TestCase that expects an Exception of class fExpected to be thrown. |
| * The other way to check that an expected exception is thrown is: |
| * <pre> |
| * try { |
| * shouldThrow(); |
| * } |
| * catch (SpecialException e) { |
| * return; |
| * } |
| * fail("Expected SpecialException"); |
| * </pre> |
| * |
| * To use ExceptionTestCase, create a TestCase like: |
| * <pre> |
| * new ExceptionTestCase("testShouldThrow", SpecialException.class); |
| * </pre> |
| */ |
| public class ExceptionTestCase extends TestCase { |
| Class fExpected; |
| |
| public ExceptionTestCase(String name, Class exception) { |
| super(name); |
| fExpected= exception; |
| } |
| /** |
| * Execute the test method expecting that an Exception of |
| * class fExpected or one of its subclasses will be thrown |
| */ |
| protected void runTest() throws Throwable { |
| try { |
| super.runTest(); |
| } |
| catch (Exception e) { |
| if (fExpected.isAssignableFrom(e.getClass())) |
| return; |
| else |
| throw e; |
| } |
| fail("Expected exception " + fExpected); |
| } |
| } |