1

手作りのモックにうんざりしているので、自分のプロジェクトに Mockito を導入しようとしています。

特定のユース ケース (またはサービス) に対してすべての Hibernate クエリを分離するデータベース アクセサーが多数あるとします。だから私は、、、などのインターフェースを持つことができRoutingDaoます。これらの各インターフェイスは、やなどのメソッドを使用して非常に一般的なものを拡張します。Hibernate では、後者は切り離されたエンティティを現在のセッションでリロードすることになっています。テストでは、引数を返すだけです。UserDaoReportingDaoDaocommit()rollback()reload(Entity)

手作りのモックでは簡単でした。MockDaoこのメソッドの一般的な実装があり、その実装MockRoutingDaoを拡張MockDaoして使用しました。私が Mockito で目にする 1 つの方法は、モック化されていない呼び出しをMockRoutingDao拡張して委譲することです。MockDao継承されていないメソッドは、spy(). しかし、これはかなり醜いです - 私はまだモックを手作りする必要があり、一部の実装を再利用するための部分的なモックと継承の全体的なアイデアは混乱しています.

どうすれば改善できますか?多くのテストで再利用できるモック メソッドの共有実装を作成するためのベスト プラクティスは何ですか?

4

1 に答える 1

1

あなたは本当にすべての*DAOモックが処理する一般的なものを処理するorg.mockito.stubbing.Answer実装を書きたいと思っています。

これにカスタムwhenスタブを追加することもできます。

于 2011-01-26T16:18:22.400 に答える