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静态类

 

posted @   浪迹天涯的派大星  阅读(1041)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示