如何在JUnit 3中自定义异常处理行为?

use*_*877 3 java junit unit-testing exception

我想使用JUnit 3实现异常检查(如在JUnit 4中).例如,我希望能够编写如下测试:

public void testMyExceptionThrown() throws Exception {
    shouldThrow(MyException.class);

    doSomethingThatMightThrowMyException();
}
Run Code Online (Sandbox Code Playgroud)

当且仅当抛出MyException时,这应该成功.JUnit中有ExceptionTestCase类,但我想要一些每个test*方法可以决定使用或不使用的东西.实现这一目标的最佳方法是什么?

Kos*_*801 9

解决方案是:

public void testMyExceptionThrown() throws Exception {
    try {
      doSomethingThatMightThrowMyException();
      fail("Expected Exception MyException");
    } catch(MyException e) {
      // do nothing, it's OK
    }
}
Run Code Online (Sandbox Code Playgroud)

适合你的想法?

还看看这个帖子,有人为JUnit3创建了一个代理解决方案,这似乎是解决问题的另一种可能性.