在进行单元测试时,经常需要模拟异常场景,在执行某些方法时抛出异常,此时会用到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静态类
标签:setUserName,thenThrow,doThrow,new,PowerMock,public,mock From: https://www.cnblogs.com/zhaodalei/p/17756798.html