2012-07-24 123 views
1

我目前正在试图模拟私人最终静态对象。这似乎不是我的对象被正确地嘲弄。使用Mockito/PowerMockito模拟私人最终静态对象

例子:
代码:在主类

public class Main { 

    private final static serviceA obj = new serviceA(); 

    public somemethod { return true; } 

} 

嘲笑:在我的测试类我有

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

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