我的应用程序中的测试是抛出:
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
}
可能是什么问题?
答案 0 :(得分:1)
JUnit检测到抛出异常的唯一方法是@Test
方法抛出它,即。因为它终止执行。
如果您正在捕获异常和处理,方法执行将因为抛出异常而停止。它会正常完成。由于抛出的异常,你需要它突然完成。如果你需要记录它,请重新开始。
答案 1 :(得分:1)
通过
注释您的测试@Test(expected=RuntimeException.class)
您声称在运行测试时,将抛出RuntimeExcetption并且未捕获。您在评论中声明" 在代码中有一个名为"的try-catch语句,这意味着异常被捕获。
因此JUnit将此标记为失败的测试是正确的。您声称抛出异常,但不是。