无法使用mockito模拟私有方法 [英] Can not mock the private method with mockito
问题描述
我正在尝试使用power mockito来模拟一个私有方法,在阅读这篇文章后我得到了一些想法并且我遵循相同的结构:
I am trying to mock a private method with power mockito, after reading this post I got some idea and I followed the same structure:
这是我的班级:
public class test(){
private long verifyMarketEligibilityAndGetOfferDeliveryCalendar(long id)
{
some lins of code for connectiong to db
}
public long createOffer(long id){
return verifyMarketEligibilityAndGetOfferDeliveryCalendar(id);
}
}
这是我的模拟测试:
test classUnderTest = PowerMockito.spy(new test());
PowerMockito.doReturn(10).when(classUnderTest,
"verifyMarketEligibilityAndGetOfferDeliveryCalendar", 10l);
classUnderTest.createOffer(10);
现在我希望在调用createoffer之后,verifyMarketEligibilityAndGetOfferDeliveryCalendar不会调用而是返回10号但是由于某种原因程序开始执行verifyMarketEligibilityAndGetOfferDeliveryCalendar类以及因此与db相关的代码。
Now I expect that after calling createoffer, verifyMarketEligibilityAndGetOfferDeliveryCalendar does not invoke and instead number 10 returns but for some reason program start executing the verifyMarketEligibilityAndGetOfferDeliveryCalendar class and consequently db related code .
任何人都可以帮忙吗?
Can anyone help?
推荐答案
PowerMockito需要声明这些注释。
PowerMockito needs those annotations to be declared.
@RunWith(PowerMockRunner.class)
@PrepareForTest(classUnderTest.class)
这篇关于无法使用mockito模拟私有方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!