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.
相关产品推荐
相关产品推荐

