我有一些像这样的代码:
class FooBar {
private String stateFoo;
public FooBar(String stateFoo){
this.stateFoo = stateFoo;
}
public void foo() {
FooInst f = FooInstFactory.createSomeFooInst(AnotherStaticFooConfig.getSomePath);
f.justCountMe();
}
}
我的目标是确保f.justCountMe()
只执行一次。我知道如何与mockito一起做。
我不知道的是如何将FooInst
的模拟版本注入foo
方法?这样我可以统计调用吗?
甚至可以这样做吗?
答案 0 :(得分:2)
您需要使用powermockito和mock静态方法。请参阅解释如何在此处执行此操作
答案 1 :(得分:1)
如果可能的话;我建议避免使用使用静态字段调节的模拟库(以PowerMock / Mockito的方式) - 因为它经常带来不希望的副作用(例如,许多"覆盖"工具在静态模拟时产生无效结果地方)。
所以我的建议是:重新设计你的课程。而不是从静态工厂获取f;为工厂或f提供构造函数;那么你可以模拟相应的对象;无需转向强大但危险的" Powerxyz"东西。