如何处理Java代码中try / catch语句引发的异常? 使用Junit进行这种测试的最佳方法是什么?
这是我正在尝试使用的代码,任何改进都是值得欢迎的:
try {
sessionObj = buildSessionFactory().openSession();
sessionObj.getTransaction().commit();
return true;
} catch(Exception sqlException) {
if(null != sessionObj.getTransaction()) {
sessionObj.getTransaction().rollback();
}
return false;
}
Junit代码:
@Rule
public ExpectedException expectedException = ExpectedException.none();
@Test
public void throwsExceptionWithSpecificTypeAndMessage() {
expectedException.expect(IllegalArgumentException.class);
expectedException.expectMessage("sqlException");
throw new IllegalArgumentException("sqlException");
}
答案 0 :(得分:1)
异常是已检查的异常,您必须使用try ... catch块来捕获该异常或声明该异常。
@Test
public void someTest() throws Exception {
// your code here
}
这样,我们可以声明异常,如果发生异常,Junit会打印堆栈跟踪。
或
(可选)指定期望的Throwable,以使测试方法成功(如果方法抛出指定类的异常)。
Class<? extends Throwable> org.junit.Test.expected()
@Test(expected = someException.class)
public void someTest() throws Exception {
// your code here
}