不能用 mockito 模拟私有方法
Can not mock the private method with mockito
我正在尝试使用 power mockito 模拟一个私有方法,在阅读这篇文章后 post 我有了一些想法并且我遵循了相同的结构:
example
这是我的 class:
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 returns 但由于某种原因程序开始执行 verifyMarketEligibilityAndGetOfferDeliveryCalendar class 并因此执行数据库相关代码。
有人可以帮忙吗?
PowerMockito 需要声明这些注解。
@RunWith(PowerMockRunner.class)
@PrepareForTest(classUnderTest.class)
我正在尝试使用 power mockito 模拟一个私有方法,在阅读这篇文章后 post 我有了一些想法并且我遵循了相同的结构:
example
这是我的 class:
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 returns 但由于某种原因程序开始执行 verifyMarketEligibilityAndGetOfferDeliveryCalendar class 并因此执行数据库相关代码。
有人可以帮忙吗?
PowerMockito 需要声明这些注解。
@RunWith(PowerMockRunner.class)
@PrepareForTest(classUnderTest.class)