PowerMock中的doThrow和thenThrow
在进行单元测试时,经常需要模拟异常场景,在执行某些方法时抛出异常,此时会用到doThrow和thenThrow
1、两者的区别
public class UserService{ public String getUserName(){ return "张三"; } public void setUserName(String name){ User user = new User(); user.setUserName(name); userDao.save(user); } }
thenThrow适用于mock的方法存在返回值时使用,示例如下:
PowerMockito.when(userService.getUserName()).thenThrow(new BusinessException());
doThrow适用于mock的方法不存在返回值使用,类似于mock无返回值方式是doNothing()一样,示例如下:
PowerMockito.doThrow(new BusinessException()).when(userService.setUserName());
mock静态方法抛出异常,和上面用法一样,区别在于先mock静态类
分类:
单元测试
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通