无法使用mockito模拟私有方法

时间:2016-02-22 19:00:34

标签: java unit-testing powermockito

我正在尝试使用power mockto模拟一个私有方法,在阅读这篇文章后我得到了一些想法并且我遵循了相同的结构:

example

这是我的班级:

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相关代码。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:3)

PowerMockito需要声明这些注释。

@RunWith(PowerMockRunner.class)
@PrepareForTest(classUnderTest.class)