这次FuncService调用isRoot需要从数据库中读取信息来返回用户的角色 ,userCharacter通过用户id来获取用户名,单元测试时我们需要Mock掉数据库的部分操作
class FuncService {
@Autowired
private IUserDao userORMDao;
public String userCharacter(final Long userId) {
//
final String character = userDao.selectUserCharacterById(userId);
return character;
}
}
然后我们想mock一下这个selectUserCharacterById,让他返回"user"
@RunWith(PowerMockRunner.class)
@MockitoSettings(strictness = Strictness.LENIENT)
@PrepareForTest({FuncService.class, IUserService})
@PowerMockIgnore({
.... //省略
})
class FuncTest {
@Spy
@InjectMocks
private FuncService funcService = PowerMockito.spy(new FuncService());
@org.mockito.Mock
private IUserORMDao userORMDao;
@Test
void mockUserDao_when_call_userCharacter() {
// public 方法可以直接使用Mockito进行moc