如果 junit 测试抛出异常:
public void mytest throws InvalidUsageException
这是否意味着如果测试抛出 InvalidUsageException 测试将失败?
如果是这样,将异常包装在 try/catch 块中并明确抛出异常失败是否更好?
首先,是的,您的测试将失败。
其次,我不会尝试捕获。如果发生异常,您希望让它发生,以便您知道发生了错误,而不仅仅是方法本身的错误。
如果抛出此异常,测试将失败。如果你的测试是看是否有某个异常抛出,你应该像这样开始你的测试
@Test(expected=InvalidUsageException.class)
public void mytest {
...
}
你说的可能是一种解决方案
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
是的,它们会失败。如果您期望异常然后使用@Test(expect=ExceptionClassName.class