【发布时间】:2013-11-06 15:07:25
【问题描述】:
如果 junit 测试抛出异常:
public void mytest throws InvalidUsageException
这是否意味着如果测试抛出 InvalidUsageException 测试将失败?
如果是这样,将异常包装在 try/catch 块中并明确抛出异常失败是否更好?
【问题讨论】:
如果 junit 测试抛出异常:
public void mytest throws InvalidUsageException
这是否意味着如果测试抛出 InvalidUsageException 测试将失败?
如果是这样,将异常包装在 try/catch 块中并明确抛出异常失败是否更好?
【问题讨论】:
如果抛出此异常,测试将失败。 如果你的测试是看是否有某个异常抛出,你应该像
一样开始你的测试@Test(expected=InvalidUsageException.class)
public void mytest {
...
}
【讨论】:
首先,是的,你的测试会失败。
其次,我不会使用 try catch 进行包装。如果发生异常,您希望让它发生,以便您知道发生了错误,而不仅仅是方法本身的错误。
【讨论】:
是的,它们会失败。如果您期望异常,请使用@Test(expect=ExceptionClassName.class
【讨论】:
你说的可能是一种解决方案
public void mytest() {
try {
// your code
fail();
} catch (InvalidUsageException e) {
// success
}
}
一种更快的方法(但我不会说得更清楚)
@Test (expected = Exception.class)
public void mytest() {
// your code
}
更多这样的例子在这里http://www.vogella.com/articles/JUnit/article.html
【讨论】: