我试图通过在方法顶部添加一个assert语句来确保参数不能为null。

在进行单元测试时,我试图声明AssertError是预期的,但即使它的行为正确(抛出AssertError),它仍然会被识别为失败的测试。

class ExampleTest {

  @Test(expected=AssertError.class)
  public void testAssertFails() {
     assert 0 == 1;
  }
}

最佳答案

您可能需要使用-ea JVM参数启用断言,因为它们默认情况下处于禁用状态。禁用断言后,如果assert失败,则不会引发异常。

如果您正在Eclipse中运行此程序,则可以在首选项中编辑“已安装的JRE”以将其添加为参数,或者将其添加到测试的运行配置中。

另外,抛出的异常是AssertionError,而不是AssertError

08-26 09:05