2016-07-21 11 views
0

静的メソッドをパラメータでモックする方法はありますか?パラメータで静的メソッドをモックする

私はこの質問に関して多くの質問を見ましたが、それに関連するものは何も見つかりません。

例:Helper.classには、getName(String abc)という静的メソッドがあります。

私はメソッドgetNameをしたい、私は通常のメソッドを模擬することができます同じ方法。

PowerMockitoを使用しようとしましたが、動作しませんでした。 PowerMockito.whenを宣言することによって解決さ

その 'のモックのメソッド呼び出し' にする必要がありwjich引数を必要とするとき()()に@Beforeを使用してthenReturnを():

編集:私はMissingmrthodInvocationExceptionを取得mは。セットアップブロック

+0

_ PowerMockを使用していませんでしたか? –

+0

ありがとうございますがMissingmrthodInvocationExceptionが発生しました:()に引数が必要ですwjichが '模擬メソッド呼び出し'になる必要があります – user2296988

+0

ヒント:ヘルプセンターにアクセスして、「コードは使えません」という質問をしてください。あなたのコードを表示していないかどうかはわかりません。 – GhostCat

答えて

0

PowerMockitoを使用して静的メソッドをモックできます。 完全な例を次に示します。

@RunWith(PowerMockRunner.class) 
@PrepareForTest(Helper.class) 
public class YourTestCase { 
    @Test 
    public void testMethodThatCallsStaticMethod() { 
     // mock all the static methods in a class called "Static" 
     PowerMockito.mockStatic(Helper.class); 
     // use Mockito to set up your expectation 
     Mockito.when(Helper.getName("abc")).thenReturn("foo"); 

     // execute your test 
     String result = Helper.getName("abc"); 

     //assert the result 
     Assert.assertEquals("foo", result); 

     // to start verifying behavior 
     PowerMockito.verifyStatic(Mockito.times(1)); 
     // IMPORTANT: Call the static method you want to verify 
     Helper.getName("abc"); 
    } 
} 
+0

を使用しています....しかし、classCallStaticMethodObjは何ですか? – user2296988

+0

テストを実行するにはどうすればよいですか? – user2296988

+0

@ user2296988 classCallStaticMethodObjは、テストするメソッドを含むクラスです –

関連する問題