Count方法变量实例的方法调用

时间:2015-04-10 06:24:30

标签: java count mocking method-invocation

我有一些像这样的代码:

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方法?这样我可以统计调用吗?

甚至可以这样做吗?

2 个答案:

答案 0 :(得分:2)

您需要使用powermockito和mock静态方法。请参阅解释如何在此处执行此操作

PowerMockito mock single static method and return object

答案 1 :(得分:1)

如果可能的话;我建议避免使用使用静态字段调节的模拟库(以PowerMock / Mockito的方式) - 因为它经常带来不希望的副作用(例如,许多"覆盖"工具在静态模拟时产生无效结果地方)。

所以我的建议是:重新设计你的课程。而不是从静态工厂获取f;为工厂或f提供构造函数;那么你可以模拟相应的对象;无需转向强大但危险的" Powerxyz"东西。