首页  >  文章  >  Java  >  如何使用 Assertions.assertThrows() 在 JUnit 5 中断言异常?

如何使用 Assertions.assertThrows() 在 JUnit 5 中断言异常?

DDD
DDD原创
2024-11-19 19:04:02764浏览

How to Assert Exceptions in JUnit 5 using Assertions.assertThrows()?

在 JUnit 5 中使用 Assertions.assertThrows() 断言异常

在 JUnit 5 中,断言方法抛出异常可以通过以下方式实现Assertions.assertThrows() 方法。这提供了一种方便且富有表现力的方法来测试各种异常场景,特别是在单个测试中处理多个异常时。

考虑以下测试用例:

import static org.junit.jupiter.api.Assertions.assertThrows;

@Test
void exceptionTesting() {
    MyException thrown = assertThrows(
        MyException.class,
        () -> myObject.doThing(),
        "Expected doThing() to throw, but it didn't"
    );

    assertTrue(thrown.getMessage().contains("Stuff"));
}

以下是 Assertions.assertThrows () 有效:

  1. 异常类型: assertThrows() 的第一个参数是预期的异常类型。在这种情况下,我们期望抛出 MyException。
  2. 可执行 Lambda:第二个参数是表示被测试的可执行代码的 lambda 表达式。它应该调用预期抛出异常的方法。
  3. 消息(可选):第三个​​参数(可选)允许您指定自定义错误消息,以防断言失败。

使用的好处Assertions.assertThrows():

  • 简洁易读:与使用 @Rule 相比,Assertions.assertThrows() 简化了异常测试,使您的测试更加紧凑和可读.
  • 多个异常测试:此方法允许您在同一测试用例中测试多个异常。
  • 更简洁的断言:assertThrows() 提供了一种更简洁的方式,而不是手动检查抛出的异常以及断言异常条件的声明方式。

以上是如何使用 Assertions.assertThrows() 在 JUnit 5 中断言异常?的详细内容。更多信息请关注PHP中文网其他相关文章!

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