2011-01-31 14 views
3

PowerMock(Mockitoを使用)を使用する場合、クラスのすべての静的メソッドをモックする必要はありますか?PowerMock Mockito:すべての静的メソッドをモックする方法は?

class MockMe { 
    public static MockMe getInstance(){ 
       //return new Instance via complex process; 
    } 

    public static List<X> anotherStaticMethod(){ 
     // does xyz 
    } 
} 

私の質問を、私はgetInstanceメソッドをモックする必要がある場合、それは同様に「anotherStaticMethod」を模擬する必要がある:私は、我々が持っていると仮定し意味しますか?

PowerMockバージョン:1.3、Mockitoのバージョン:1.8

答えて

6

ありませんあなたはPowerMockitoでspyを使用して、部分的モックを使用することができます。クラスレベルで@PrepareForTestを追加

stub(method(MockMe.class, "getInstance")).toReturn(myMockMeInstance); 
0

はモックとスタブする方法静的メソッド のモック:それとも、スタブのAPIを使用することができます。

@PrepareForTest(Static.class) // Static.class contains static methods 
静的クラスをモックする

コールPowerMockito.mockStatic()(具体的な方法を模擬するためにPowerMockito.spy(クラス)を使用):

PowerMockito.mockStatic(Static.class); 

だけでセットアップにあなたの期待をMockito.when()を使用します。

Mockito.when(Static.firstStaticMethod(param)).thenReturn(value); 
関連する問題