使用Mockito / PowerMockito模拟私有的最终静态对象

时间:2012-07-24 19:59:34

标签: java mocking mockito powermock

我目前正在尝试在类中模拟私有的最终静态对象。看起来我的对象没有被正确地嘲笑。

例:
代码:在主要班级

public class Main {

    private final static serviceA obj = new serviceA();

    public somemethod { return true; }

}

Mocked:在我的测试课中我有

Public class TestMain {

    private Main mainObj;
    private static  serviceA obj;

    @Before
    public void setupBeforeTest() {

        obj = Mockito.mock(serviceA.class);
        PowerMockito.whenNew(serviceA.class).withNoArguments().thenReturn(obj);
        mainObj= Mockito.spy(new Main());
    }
}

但obj在执行

时不会返回我指定的值
Mockito.when(obj.returnsFalseMethod()).thenReturn(false);

并实际运行obj.returnsFalseMethod()的代码。

任何建议都会有所帮助,我也无法更改Main类中的任何代码,谢谢。

1 个答案:

答案 0 :(得分:1)

我没有意识到你必须准备创建对象的类。除了实例化对象的类之外,我正在准备每个类。