为什么JUnit Testing异常总是失败?

Jer*_*ONG 8 java junit exception

我正在使用JUnit 4.11.

Eclipse版本:Luna Service Release 2(4.4.2)

我需要做异常测试.代码可能是这样的:

// src code
public void myMethod throws MyException {
    ...
    throw new MyException(msg);
    ...
}

// test code
@Test (expected = MyException.class)
public void testMyMethod() {
    try {
        myMethod();
        fail();
    } catch (MyException e) {
        assertEquals(expectedStr, e.getMessage());
    }
}
Run Code Online (Sandbox Code Playgroud)

但测试总是失败,我错在哪里?

rge*_*man 5

当您为注释提供expected异常时Test,只有从test方法中抛出了预期的异常,测试才会成功。但是,您可以在异常传播出方法之前捕获该异常。

看起来您也想测试异常消息,因此请重新throw执行异常e以满足测试。根据是否检查,您可能需要throws在方法上使用一个子句。