代码之家  ›  专栏  ›  技术社区  ›  HMdeveloper

无法用mockito模拟私有方法

  •  3
  • HMdeveloper  · 技术社区  · 10 年前

    我正试图用power mockito模拟一个私有方法,在阅读了这篇文章后,我有了一些想法,我遵循了相同的结构:

    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之后,verifyMarketEqualityAndGetOfferDeliveryCalendar不会调用,而是返回数字10,但出于某种原因,程序会开始执行verifyMarketEquality AndGetOffer Deliverycalendar类,从而执行与数据库相关的代码。

    有人能帮忙吗?

    1 回复  |  直到 9 年前
        1
  •  5
  •   AZ_    9 年前

    PowerMockito需要声明这些注释。

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