我在我的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
答案 0 :(得分:1)
好的,我找到了答案。
一种可能的解决方案是使用这样的Delegator
:
result = new Delegate<PersonArt>() {
PersonArt delegator(String pShortName, Integer pOld, Integer pSize)
{
return doEvaluatePersonArt(pShortName, pOld, pSize);
}
};
工作得很好。