java - JUnit 5 : How to assert an exception is thrown?

标签 java junit junit5 junit-jupiter

在 JUnit 5 中有没有更好的方法来断言方法抛出异常?

目前,我必须使用 @Rule 来验证我的测试是否引发了异常,但这不适用于我希望多个方法在我的测试中引发异常的情况。

最佳答案

您可以使用 assertThrows() ,它允许您在同一个测试中测试多个异常。在 Java 8 中支持 lambda,这是在 JUnit 中测试异常的规范方法。

根据 JUnit docs :

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"));
}

关于java - JUnit 5 : How to assert an exception is thrown?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40268446/

相关文章:

java - 如何找到奇偶校验异常值 kata

构建 : Unable to write output 时发生 Java 错误

java - JMockit 与 JUnit5 - JMockit 未初始化

java - 在列表中 n 个大小的 bin 内随机播放列表

java - 使用抽象类实现接口(interface)时要声明什么(不)?

java - 在 Java 中上传目录时出现 Amazon S3 SdkClientException

java - hibernate 错误 IllegalArgumentException : node to traverse cannot be null

java - 如何使用 mockito 为同一类的私有(private)方法 stub 返回值

java - 您如何在模块化 Java 项目中组织测试?

spring-boot - Junit 5 与 CamelTestSupport