【发布时间】:2019-12-17 09:39:41
【问题描述】:
如何处理 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");
}
【问题讨论】:
-
你的测试没有测试任何东西。此外,您的方法不会抛出异常,因此您的测试毫无意义。
-
我认为这个 stacklink 可能会对你有所帮助:stackoverflow.com/questions/31423643/try-catch-in-a-junit-test
-
@Quadrivics 怎么样?该方法不会抛出异常。
-
我认为一个人不仅应该判断这个问题是否合理,而且即使你认为这个问题是无效的,也应该尝试告知这个人他的问题的答案。显然他错过了关于测试 try catch 语句的知识,在我提供的链接中,我找到了一个很好的解释。
-
@Quadrivics 不,你没有。那里解释的是如何测试要测试的方法抛出的异常。这不会发生在这里。