モックの基本的な手法は、モックされている実際のサービス (依存関係) のメソッドを提供するインターフェイス (現在の設計にインターフェイスがない場合) を導入することです。テストは、テスト対象のクラスが依存関係と正しく対話することをテストしています。ここで正しくは、期待どおりの動作をすることを意味します。それが正しいことを意味するわけではありません。正しいことは、実際のコンポーネント (実際のファイルを作成することによって想定されること) を使用する統合テストによってのみ決定できるためです。
したがって、テスト対象のクラスに、このインターフェースの実装を渡すことができるメソッドが必要です。最も明白なのは、コンストラクターを使用することです。実際のファイルシステムにヒットするインターフェースの実際の実装でクラスを初期化するプロダクションコンストラクターがあり、テストの下でモックをコンストラクターに渡します。
テストでは、クラスでメソッドを実行し、インターフェイスが期待どおりに呼び出されたことをアサートします。
クラスが作成され、モックを介した単体テストが行われた後に来ることは価値が限られていることに注意してください。ただし、クラスへの将来の変更が驚くべき方法で期待を裏切らないように、動作を固定するのに役立ちます。
始めるのに役立つことを願っています。
一部のモッキング フレームワークは、実際の具象クラスのモッキングをサポートしています。これは、単体テスト後のテストで非常に有効です (インターフェイスだけでなく、実際のクラスへの呼び出しをインターセプトすることにより)。EasyMock でそれができるかどうかはわかりませんでしたが、そのような機能が必要な場合は、おそらくJDaveが最適です。最終クラスをモックすることさえできます。