Junit在try catch语句中处理异常

时间:2019-12-17 09:39:41

标签: java junit junit4

如何处理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");
}

1 个答案:

答案 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
}