首页 >Java >java教程 >如何有效测试 JUnit 中的异常处理?

如何有效测试 JUnit 中的异常处理?

DDD
DDD原创
2024-12-20 05:49:10572浏览

How Can I Effectively Test for Exception Handling in JUnit?

在 JUnit 中测试异常处理

在 JUnit 中,测试是否抛出特定异常可以通过多种方式实现。

JUnit 5 和 4.13

@Test注解现在支持expected属性,它允许您指定预期的异常类型:

@Test(expected = IndexOutOfBoundsException.class)
public void testIndexOutOfBoundsException() {
    ArrayList emptyList = new ArrayList();
    Object o = emptyList.get(0);
}

AssertJ 或 Google Truth

AssertJ 和 Google Truth 等第三方断言库为异常测试提供更简洁的语法:

// AssertJ
assertThatThrownBy(() -> foo.doStuff()).isInstanceOf(IndexOutOfBoundsException.class);

// Google Truth
assertWithMessage("Expected IndexOutOfBoundsException").thatExceptionOfType(IndexOutOfBoundsException.class).isThrownBy(() -> foo.doStuff());

JUnit < ;= 4.12

对于 JUnit 4.12 及更早版本,有几个options:

  1. 布尔标志: 与原始问题中的代码类似。
  2. @Rule: @Rule 注释可以是用于创建断言抛出异常的测试规则。
  3. 自定义匹配器: 创建自定义 Hamcrest 匹配器来检查是否引发特定类型的异常。

有关这些选项的更多详细信息,请参阅 JUnit 测试常见问题解答。

以上是如何有效测试 JUnit 中的异常处理?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn