スパイはオブジェクトの実際のメソッドを呼び出しますが、モックは二重オブジェクトのメソッドを呼び出すことは理解しています。また、コード臭がない限り、スパイは避けるべきです。
しかし、スパイはどのように機能し、実際にいつ使用すればよいのでしょうか? モックとどう違うのでしょうか?
ベストアンサー1
技術的に言えば、「モック」と「スパイ」はどちらも特別な種類の「テスト ダブル」です。
残念ながら、Mockito ではその区別がおかしくなります。
mockitoのモックは通常のモックです他のモック フレームワークでは (呼び出しをスタブ化できます。つまり、メソッド呼び出しから特定の値を返すことができます)。
mockitoのスパイは部分的なモックです他のモック フレームワークでは (オブジェクトの一部はモック化され、一部は実際のメソッド呼び出しを使用します)。