当函数里有其他函数调用的时候
类FuncService中的userCharacter会调用同一个类中的isRoot判断方法
class FuncService {
protected boolean isRoot(final Long userId) {
return userId == 0;
}
public String userCharacter(final Long userId) {
//
final boolean isRoot = isRoot(userId);
if (isRoot) {
return "root";
}
return "user";
}
}
我们想要mock函数isRoot,返回一些我们预设的值,比如这里我们mock后返回true
测试用例还是可以和之前一样写
@RunWith(PowerMockRunner.class)
@MockitoSettings(strictness = Strictness.LENIENT)
@PrepareForTest({FuncService.class})
@PowerMockIgnore({
.... //省略
})
public class FuncServiceUnitTest {
@Spy
@InjectMocks
private FuncService funcService = PowerMockito.spy(new FuncService());
@Test
void mockfuncB_when_call_funcA() {
// 因为funcB为protected method所