【发布时间】:2014-11-04 14:52:40
【问题描述】:
能否告诉我,编写一个抛出异常的方法(例如:JUnit Test)是否是正常的做法,例如:
class A {
public String f(int param) throws Exception {
if (param == 100500)
throw new Exception();
return "";
}
}
private A object = new A();
@Test
public void testSomething() throws Exception {
String expected = "";
assertEquals(object.f(5), expected);
}
事实上,方法f() 不会为该参数抛出异常(5),但我必须声明该异常。
【问题讨论】:
-
是的,这就是你要走的路。 JUnit runner 也会捕获任何抛出的异常,然后测试就会失败。
-
@Test(Expected=SomethingDoesn'tWorkException) 你可以用它来捕捉 JUnit 测试中的异常
-
@hagubear 您只想在预期异常的特定测试用例中使用
expected。但在显示的示例中,throws是必需的,但不会出现异常。 -
@Joe 对我来说似乎不是重复的。