首页 > 其他分享 >PowerMock中的doThrow和thenThrow

PowerMock中的doThrow和thenThrow

时间:2023-10-11 13:56:11浏览次数:24  
标签:setUserName thenThrow doThrow new PowerMock public mock

在进行单元测试时,经常需要模拟异常场景,在执行某些方法时抛出异常,此时会用到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

相关文章