用powermock 方法中new对象

在单元测试中有时需要对方法体内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();
}

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

原文地址:https://www.cnblogs.com/yuhuameng/p/10756308.html