当前位置:首页 > Java

如何测试JAVA异常

2026-03-18 05:17:01Java

测试Java异常的方法

使用JUnit的@Test注解和expected参数

在JUnit 4中,可以通过@Test注解的expected参数指定期望抛出的异常类型。测试通过的条件是方法确实抛出了指定类型的异常。

@Test(expected = IllegalArgumentException.class)
public void testException() {
    methodThatThrowsException();
}

使用JUnit 5的assertThrows

JUnit 5引入了assertThrows方法,可以更灵活地捕获异常并验证异常信息。

如何测试JAVA异常

@Test
public void testException() {
    Exception exception = assertThrows(IllegalArgumentException.class, () -> {
        methodThatThrowsException();
    });
    assertEquals("Invalid argument", exception.getMessage());
}

使用try-catch块手动验证

在某些情况下,可能需要手动捕获异常并进行验证。

@Test
public void testException() {
    try {
        methodThatThrowsException();
        fail("Expected exception not thrown");
    } catch (IllegalArgumentException e) {
        assertEquals("Invalid argument", e.getMessage());
    }
}

使用Mockito模拟异常

当测试依赖外部服务的代码时,可以使用Mockito模拟异常抛出。

如何测试JAVA异常

@Test
public void testException() {
    when(mockService.someMethod()).thenThrow(new RuntimeException("Error"));
    assertThrows(RuntimeException.class, () -> {
        testClass.methodUnderTest();
    });
}

验证异常链

有时需要验证异常的起因或嵌套异常。

@Test
public void testExceptionChain() {
    Exception exception = assertThrows(RuntimeException.class, () -> {
        methodThatThrowsException();
    });
    assertTrue(exception.getCause() instanceof IOException);
}

使用自定义断言

对于复杂的异常验证,可以创建自定义断言方法。

private void assertException(Class<? extends Exception> expected, Executable executable, String message) {
    Exception exception = assertThrows(expected, executable);
    assertEquals(message, exception.getMessage());
}

标签: 异常测试
分享给朋友:

相关文章

jest如何测试react

jest如何测试react

使用 Jest 测试 React 组件 Jest 是 Facebook 推出的 JavaScript 测试框架,特别适合测试 React 应用。以下介绍如何使用 Jest 测试 React 组件。…

react h5网站如何真机测试

react h5网站如何真机测试

使用 Chrome 远程调试(Android) 确保手机和电脑在同一局域网,打开手机开发者选项中的 USB 调试 和 USB 安装。通过 USB 连接电脑,在 Chrome 浏览器地址栏输入 chro…

java如何自定义异常

java如何自定义异常

自定义异常的基本步骤 在Java中自定义异常需要继承自Exception类或其子类。通常推荐继承RuntimeException创建非受检异常,或继承Exception创建受检异常。 // 自定义非…

java语言如何进行异常处理

java语言如何进行异常处理

Java异常处理机制 Java通过try-catch-finally语句块实现异常处理。异常分为检查型异常(Checked Exception)和非检查型异常(Unchecked Exception)…

java异常如何抛出

java异常如何抛出

抛出异常的方法 在Java中,异常抛出主要通过throw关键字实现。以下是几种常见的抛出异常的方式: 使用throw关键字抛出异常 if (condition) { throw new I…

如何抛出异常 java

如何抛出异常 java

抛出异常的方法 在Java中,抛出异常主要通过throw关键字实现。以下是几种常见的抛出异常的方式: 使用throw关键字抛出异常 直接使用throw关键字抛出异常对象,可以是Java内置异常或自…