即使JUnit中存在预期的错误,也会出现断言错误

时间:2015-01-03 16:44:50

标签: java junit

我的应用程序中的测试是抛出:

java.lang.AssertionError: Expected exception: java.lang.RuntimeException
    at org.junit.internal.runners.statements.ExpectException.evaluate(ExpectException.java:35)

即使我有这个:

@Test(expected=RuntimeException.class)
public void test(){
  // I can see from the console log that a java.lang.RuntimeException was thrown
}

可能是什么问题?

2 个答案:

答案 0 :(得分:1)

JUnit检测到抛出异常的唯一方法是@Test方法抛出它,即。因为它终止执行。

如果您正在捕获异常和处理,方法执行将因为抛出异常而停止。它会正常完成。由于抛出的异常,你需要它突然完成。如果你需要记录它,请重新开始。

答案 1 :(得分:1)

通过

注释您的测试
@Test(expected=RuntimeException.class)

您声称在运行测试时,将抛出RuntimeExcetption并且未捕获。您在评论中声明" 在代码中有一个名为"的try-catch语句,这意味着异常被捕获。

因此JUnit将此标记为失败的测试是正确的。您声称抛出异常,但不是。