2012-07-24 131 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

我沒有意識到你必須準備創建對象的類。我正在準備除了實例化對象的類以外的每個類。