当前位置:首页 > Java

如何测试异常 java

2026-03-22 23:32:24Java

测试 Java 异常的方法

使用 JUnit 的 assertThrows
JUnit 5 提供了 assertThrows 方法,用于验证代码是否抛出预期的异常。语法如下:

@Test
void testException() {
    assertThrows(ExpectedException.class, () -> {
        // 触发异常的代码
        methodThatShouldThrow();
    });
}

此方法会检查 methodThatShouldThrow 是否抛出 ExpectedException 类型的异常。

捕获异常并验证消息
如果需要验证异常的具体消息或属性,可以捕获异常后进行断言:

如何测试异常 java

@Test
void testExceptionMessage() {
    Exception exception = assertThrows(ExpectedException.class, () -> {
        methodThatShouldThrow();
    });
    assertEquals("Expected error message", exception.getMessage());
}

使用 try-catch 手动验证
在旧版 JUnit 或需要更复杂验证时,可以手动捕获异常:

@Test
void testExceptionManually() {
    try {
        methodThatShouldThrow();
        fail("Expected exception was not thrown");
    } catch (ExpectedException e) {
        // 验证异常属性
        assertTrue(e.getMessage().contains("specific text"));
    }
}

测试自定义异常
对于自定义异常,需确保异常类正确继承 RuntimeExceptionException,并通过上述方法测试其触发逻辑和消息。

如何测试异常 java

模拟异常场景
使用 Mockito 模拟依赖对象抛出异常:

@Test
void testMockedException() {
    Dependency dependency = mock(Dependency.class);
    when(dependency.someMethod()).thenThrow(new ExpectedException("mock error"));

    assertThrows(ExpectedException.class, () -> {
        serviceUnderTest.useDependency(dependency);
    });
}

集成测试中的异常
在 Spring Boot 测试中,验证控制器抛出的异常:

@Test
void testControllerException() throws Exception {
    mockMvc.perform(get("/endpoint"))
           .andExpect(status().isBadRequest())
           .andExpect(result -> assertTrue(result.getResolvedException() instanceof ExpectedException));
}

通过以上方法,可以全面覆盖异常触发条件、类型、消息及上下文的测试需求。

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

相关文章

vue实现接口测试

vue实现接口测试

Vue 实现接口测试的方法 在 Vue 项目中实现接口测试,可以通过多种方式完成。以下是几种常见的方法: 使用 Axios 进行接口测试 Axios 是 Vue 中常用的 HTTP 客户端库,适合…

vue实现课堂发布测试

vue实现课堂发布测试

Vue实现课堂发布测试功能 项目结构设计 使用Vue CLI创建项目基础结构,核心目录包括: components/ 存放可复用组件 views/ 存放页面级组件 router/ 配置路由 stor…

react表单如何测试

react表单如何测试

测试 React 表单的方法 单元测试表单组件 使用 Jest 和 React Testing Library 测试表单组件的渲染和交互。验证输入框、按钮等元素是否存在,模拟用户输入并检查状态变化。…

react项目如何自动化测试

react项目如何自动化测试

自动化测试工具选择 React项目常用的自动化测试工具包括Jest、React Testing Library、Cypress等。Jest是Facebook开发的JavaScript测试框架,适合单元…

php异常实现

php异常实现

PHP 异常处理基础 PHP 异常处理通过 try、catch、throw 和 finally 关键字实现。异常用于在程序执行过程中遇到错误时改变正常流程。 try { // 可能抛出异常的…

jquery测试

jquery测试

jQuery 测试方法 jQuery 测试通常涉及单元测试、功能测试和集成测试。以下是几种常见的测试方法和工具: 使用 QUnit 进行单元测试 QUnit 是 jQuery 官方推荐的单元测试框架…