如果junit测试抛出异常:
public void mytest throws InvalidUsageException
这是否意味着如果测试抛出InvalidUsageException,那么测试将失败?
如果是这样的话,更好的设计是将一个异常包装在一个try / catch块中,并且抛出异常显然失败了吗?
答案 0 :(得分:2)
首先,是的,你的测试会失败。
其次,我不会用try catch包装。如果发生异常,您希望让它发生,以便您知道发生了错误,而不仅仅是方法本身的错误。
答案 1 :(得分:2)
如果抛出此异常,测试将失败。 如果您的测试是要查看是否抛出某个异常,您应该开始测试,如
@Test(expected=InvalidUsageException.class)
public void mytest {
...
}
答案 2 :(得分:1)
是的,这会失败。如果您预计会出现异常,请使用@Test(expect=ExceptionClassName.class
答案 3 :(得分:1)
你说的可能是一个解决方案
public void mytest() {
try {
// your code
fail();
} catch (InvalidUsageException e) {
// success
}
}
更快的方法(但我不会说更清楚)
@Test (expected = Exception.class)
public void mytest() {
// your code
}