在单元测试中有时需要对方法体内new出来的对象进行方法隔离,powermock提供了这个功能,下面是一个段样例代码:

UserBean user = mock(UserBean.class, RETURNS_DEEP_STUBS);
when(user.getName()).thenReturn(null);
//从excel中获取属性值
user.setAge((String) dpdata.get("age").get(0));
user.setName((String) dpdata.get("name").get(0));
UserBean mockUserBean = PowerMockito.mock(UserBean.class, RETURNS_DEEP_STUBS);
when(mockUserBean.getName()).thenReturn(null);
try {
     PowerMockito.whenNew(UserBean.class).withNoArguments() .thenReturn(mockUserBean);
} catch (Exception e1) {
   e1.printStackTrace();
}

 

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

RETURNS_DEEP_STUBS 属性是为了支持多层mock时使用。

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄