2013-06-06 24 views
10

スパイオブジェクトのメソッドが呼び出された時間を確認できます。メソッド呼び出しの結果を確認できますか?Mockitoスパイオブジェクトの返却方法を確認してください

次のようなものはありますか?

verify(spiedObject, didReturn(true)).doSomething(); 
+3

@BrianRoachこの質問は、スパイされたオブジェクトによって返された値に関するもので、値はそれに合格していません。 –

答えて

13

呼び出された回数を確認するには、verify(spiedObject, times(x)).doSomething()を使用します。

スパイしたオブジェクトから返された値を検証してはいけません。テスト対象のオブジェクトではないため、返すオブジェクトを検証する必要があります。代わりに、スパイから返された値に応じて、テスト対象オブジェクトの動作を検証します。

また、スパイしたオブジェクトによって返される値が分からない場合は、スパイの代わりにモックを使用する方がよいでしょう。

+1

ありがとうございました。それは私がやっていることです、私はちょうど興味がありました。 – David

+1

計算結果を検証するなど、戻り値を検証する必要があることがあります。たとえば、センサークラスなどでスパイしている場合、センサーが「アラート」を引き起こす入力のタイプを受け取ったときにセンサーが「アラート」ステータスを返すことを確認したいとします。 –

+1

@ luis.espinal上記の説明はスパイしたオブジェクトのテスト(アラート入力時にアラートを確認する)のように見えます。これは、スパイされたオブジェクトを使用するオブジェクトのテストではなく、スパイされたオブジェクトのテストで実行する必要があります。私はまた、警告の結果を返すの背後に複雑な動作がある場合は、スタブされたメソッドを使用する必要が提案します。 –

関連する問題