在 JUnit 中,测试是否抛出特定异常可以通过多种方式实现。
@Test注解现在支持expected属性,它允许您指定预期的异常类型:
@Test(expected = IndexOutOfBoundsException.class) public void testIndexOutOfBoundsException() { ArrayList emptyList = new ArrayList(); Object o = emptyList.get(0); }
AssertJ 和 Google Truth 等第三方断言库为异常测试提供更简洁的语法:
// AssertJ assertThatThrownBy(() -> foo.doStuff()).isInstanceOf(IndexOutOfBoundsException.class); // Google Truth assertWithMessage("Expected IndexOutOfBoundsException").thatExceptionOfType(IndexOutOfBoundsException.class).isThrownBy(() -> foo.doStuff());
对于 JUnit 4.12 及更早版本,有几个options:
有关这些选项的更多详细信息,请参阅 JUnit 测试常见问题解答。
以上是如何有效测试 JUnit 中的异常处理?的详细内容。更多信息请关注PHP中文网其他相关文章!