简体   繁体   English

无法使用mockito模拟私有方法

[英]Can not mock the private method with 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: 我试图用power mockto模拟一个私有方法,阅读这篇文章后我得到了一些想法,我遵循相同的结构:

example

here is my 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);
  }

}

And here is my mock test: 这是我的模拟测试:

test classUnderTest = PowerMockito.spy(new test());
        PowerMockito.doReturn(10).when(classUnderTest,
                "verifyMarketEligibilityAndGetOfferDeliveryCalendar", 10l);
        classUnderTest.createOffer(10);

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 . 现在我希望在调用createoffer之后,verifyMarketEligibilityAndGetOfferDeliveryCalendar不会调用而是返回10个返回但由于某种原因,程序开始执行verifyMarketEligibilityAndGetOfferDeliveryCalendar类,从而执行db相关代码。

Can anyone help? 有人可以帮忙吗?

PowerMockito needs those annotations to be declared. PowerMockito需要声明这些注释。

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM