You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JUnit测试:如何测试继承Exception的空自定义Java类?

补全BadRequestException的JUnit测试方案

先贴出老师提供的自定义异常类(大概率是这样的结构):

public class BadRequestException extends Exception {
    public BadRequestException() {
        super();
    }

    public BadRequestException(String message) {
        super(message);
    }
}

测试思路

这个空异常类没有业务逻辑,测试只要覆盖所有构造方法,验证实例化正常、继承关系正确就行,完全能拉满覆盖率。

最终测试代码

import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;

public class BadRequestExceptionTest {

    // 覆盖无参构造
    @Test
    void testNoArgConstructor() {
        BadRequestException exception = new BadRequestException();
        assertNotNull(exception);
        // 确认它确实是Exception的子类
        assertInstanceOf(Exception.class, exception);
    }

    // 覆盖带消息的构造(如果你的类有这个方法)
    @Test
    void testMessageConstructor() {
        String testMessage = "Invalid input data";
        BadRequestException exception = new BadRequestException(testMessage);
        // 验证消息能正确传递
        assertEquals(testMessage, exception.getMessage());
        assertInstanceOf(Exception.class, exception);
    }
}

按需调整

  • 如果你的异常类只有无参构造,删掉第二个测试方法就好。
  • 要是还有BadRequestException(String message, Throwable cause)这种构造,加个测试验证getCause()能返回传入的异常就行。
  • 运行测试后,这个类的覆盖率就达标了,不用纠结复杂逻辑。

内容的提问来源于stack exchange,提问作者Wry S.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 20:35:29