2017-10-25 9 views
0
class A{ 
    public void aa(B b){} 
    public void bb(){} 
} 

私はdoNothing().when(A).bb();を使用しました。引数を持つメソッドのためのmockito donothing

関数には何を使用しますか。aa()引数があるためです。

+1

'doNothingは、()(A).aa(Matchers.any());'あなたが読むべきである[ドキュメント](https://static.javadoc.io/org.mockito/mockito- core/2.10.0/org/mockito/Mockito.html) –

+0

@RC Mockito 2以降では、引数がnullの場合は処理されません。 _あなたはその文書を読むべきです。 –

+0

お役立ち情報... –

答えて

2

一般に、doNothingは必要ありません。mocksは、メソッドが呼び出されると、デフォルトでは「何もしない」ためです。 スパイクの代わりにスパイを使用している場合は、doNothingと書く必要があります。

Mockito 1.xので

、あなたは効果的aaへの呼び出しを無効にし

doNothing().when(yourSpyGoesHere).aa(any(B.class)); 

を書くことができます。

残念ながら、anyの意味がMockito 2で変更されており、この構成はもはや利用できません。私が知る限り、Mockitoチームは、「古い」という意味のanyに相当するものを提供していませんでした。

私が知っている最高のことは、引数がnullである特殊なケースに対処するためにこれを追加のスタブと組み合わせることです。

doNothing().when(yourSpyGoesHere).aa(any(B.class)); 
doNothing().when(yourSpyGoesHere).aa(null); 
関連する問題