【发布时间】:2017-11-02 14:28:06
【问题描述】:
我想模拟从我的测试方法调用的私有方法,但不是模拟,而是 PowerMockito 调用 toMockMethod,我得到了 NPE。 toMockMethod 属于同一类。
@RunWith(PowerMockRunner.class)
public class PaymentServiceImplTest {
private IPaymentService paymentService;
@Before
public void init() {
paymentService = PowerMockito.spy(Whitebox.newInstance
(PaymentServiceImpl.class));
MockitoAnnotations.initMocks(this);
}
@Test
public void test() throws Exception {
...
PowerMockito.doReturn(mockedReturn)
.when(paymentService,
"toMockMethod",
arg1, arg2);
}
}
这是正常情况吗?如果方法已被调用,那么模拟方法有什么意义?
【问题讨论】:
-
当您想要测试服务时,通常会模拟其与私有方法交互的依赖项,而不是模拟私有方法。
-
@Compass 我测试了一个公共方法,它调用了同一个类的私有方法
标签: java junit4 powermockito