在jmockit中为结果调用自己的私有方法

时间:2014-04-05 11:43:19

标签: java invoke jmockit

我在我的junit中得到了这段代码:

new NonStrictExpectations(mPersonEvaluator) {
  {
    invoke(mPersonEvaluator, "doEvaluatePerson", withAny(String.class), withAny(Integer.class), withAny(Integer.class));
    result = doEvaluatePerson((String)any, (Integer)any, (Integer)any);  
  }
};

每当在doEvaluatePerson((String)any, (Integer)any, (Integer)any);的业务逻辑中调用方法doEvaluatePerson时,我想从我的私有方法mPersonEvaluator生成结果。 调用工作正常,但结果仅在junit的设置期间计算一次,结果为null。 我的问题是如何在jmockit中声明这种用例,以便模拟使用我的私有方法?

提前感谢

的Stefan

1 个答案:

答案 0 :(得分:1)

好的,我找到了答案。 一种可能的解决方案是使用这样的Delegator

   result = new Delegate<PersonArt>() {
      PersonArt delegator(String pShortName, Integer pOld, Integer pSize)
      {
         return doEvaluatePersonArt(pShortName, pOld, pSize);
      }
   };  

工作得很好。