質問: JavaでJUnit + Mockito(モックライブラリ)を利用して単体テストを実施しています。 次のようなクラスのメソッドのテストを実装しようと思った場合、ObjectA, ObjectBはモックを利用すべきでしょうか、実際にインスタンスを生成してテストを行うでべきでしょうか。 ``` public class Hoge { public void (ObjectA a, ObjectB b) { // ObjectA, ObjectBを利用して何かしらの処理を行う。 } } ``` インスタンス生成が難しいオブジェクトなどは迷わずモックになるのかと思いますが、 自分の中での基準がはっきりとしておらず、なにかしらの判断基準があればご教示いただけますと幸いです。 メソッド内部の処理にも依存しますでしょうか? どうぞよろしくお願い致します。
回答: UIの本質はメソッド単体の試験なので 基本的にはDIしているオブジェクトなどに対してのみMock化を行うと思います。 出来る限り引数に対してのMockは行いません。が、おっしゃるとおりインタフェースで実装が必要なメソッドがかなり多いなどのインスタンス生成が難しいオブジェクトについてはMock化するしかありません。 その場合は部分Mock化などを検討するべきじゃないですかね。 メソッド内で利用する処理のみはMock化しないなど。