web-dev-qa-db-ja.com

Mockito / PowerMocktio doNothing for nonevoidメソッド

テスト中に呼び出されたときに何もしない何かを返すメソッドが必要です。メソッドを所有するクラスインスタンスはスパイとして実装されます。

DoNothing()メソッドはvoidメソッドでのみ機能することを知っています。何かを返すメソッドで同じ動作を取得する方法はありますか?

ありがとうございました!

16
Mat

when(spy.myMethod()).thenReturn(null)を使用します。これにより、スパイがラップされたインスタンスを呼び出すのを防ぐことができます。何かを返すメソッドに対して何を返すかをMockitoに指示する必要があります。 mockのデフォルトの動作は、nullを返すことです。 spyのデフォルトの動作は、ラップされたオブジェクトを呼び出すことです。 stubのメソッドをspyすると、ラップされたオブジェクトの呼び出しが防止され、指定された動作が実行されます。

Spy のドキュメントごとに、doReturn(null).when(spy).myMethod();を実行することもできます。

15
John B