2016-08-08 11 views
3

私はコードをテストするためにMockitoとPowerMockitoを使用しようとしています。以下を実行している、しかし、何らかの理由でMockitoを使う:プライベートな静的メソッドで複数の引数をマッチングする?

public class asdfClass{ 

    public static String methodToMock(String item, String otheritem){ 
     return "asdf"; 
    } 

    public static String methodToMock(String item){ 
     return "asdf";  
    } 
} 

:私は、次のクラスに似何かを持っている

PowerMockito.spy(asdfClass.class); 

PowerMockito.when(asdfClass.methodToMock(Mockito.any())).thenReturn("asdfghj"); 

は正しくコンパイルするために表示されますが、

PowerMockito.spy(asdfClass.class); 

PowerMockito.when(asdfClass.methodToMock(Mockito.any(), Mockito.any())).thenReturn("asdfghj"); 

を実行することはないとスピットMockito.any()の "ここで許可されていないvoid型"のエラーを返します。

誰もこれについて何をするべきか知っていますか?私がstackoverflowで見た唯一の他の結果は、読者がドキュメンテーションを見ていることを示唆していますが、プライベートスタティックメソッドの複数の引数については何も言わなかったと思います。

(最後に、私は私が私の空のメソッドのすべてが複数の引数を取るという事実にダウン抱えている問題を煮てきたもののdoNothingとボイド結果を模擬するために望んでいる)

EDIT :決して気にしないで、それを持ってください:Is it possible to use partial mocking for private static methods in PowerMock?(選択された答えにコメント4)。奇妙なことにこれまではうまくいきませんでしたが、それは私が知っているすべてのために私の部分のタイプミスかもしれません)

答えて

1

あなたは何かを返すことができないので、thenReturn()ステートメントを省略する必要がありますwhen()の代わりにdoNothing()を使用してください)。

+0

私はこの質問をするときに私のコードを急いだと思われる。編集中 – user3537932

+0

編集済み。それについて申し訳ありません – user3537932

関連する問題