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

时间:2015-05-22 16:31:33

标签: java exception junit

我正在使用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());
    }
}

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

1 个答案:

答案 0 :(得分:5)

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

看起来您也想测试异常消息,因此请重新throw异常e以满足测试要求。根据是否已选中,您可能需要该方法的throws子句。