手作りのモックにうんざりしているので、自分のプロジェクトに Mockito を導入しようとしています。
特定のユース ケース (またはサービス) に対してすべての Hibernate クエリを分離するデータベース アクセサーが多数あるとします。だから私は、、、などのインターフェースを持つことができRoutingDao
ます。これらの各インターフェイスは、やなどのメソッドを使用して非常に一般的なものを拡張します。Hibernate では、後者は切り離されたエンティティを現在のセッションでリロードすることになっています。テストでは、引数を返すだけです。UserDao
ReportingDao
Dao
commit()
rollback()
reload(Entity)
手作りのモックでは簡単でした。MockDao
このメソッドの一般的な実装があり、その実装MockRoutingDao
を拡張MockDao
して使用しました。私が Mockito で目にする 1 つの方法は、モック化されていない呼び出しをMockRoutingDao
拡張して委譲することです。MockDao
継承されていないメソッドは、spy()
. しかし、これはかなり醜いです - 私はまだモックを手作りする必要があり、一部の実装を再利用するための部分的なモックと継承の全体的なアイデアは混乱しています.
どうすれば改善できますか?多くのテストで再利用できるモック メソッドの共有実装を作成するためのベスト プラクティスは何ですか?