単体テストに少し慣れているので、うまくいけばこの質問には意味があります。私のUnitTestは私のUnitOfWork、リポジトリ、およびコンテキスト、またはコンテキストをモックするべきですか?
マイセットアップ: のVisual Studio 2010の Entity Frameworkの4.1 部品番号
私は私のDALでのUnitOfWorkを使用して、私のBALにあるサービスクラスを持っています。 UnitOfWorkは、さまざまなリポジトリへのアクセスを管理します。これらのリポジトリは、Contextオブジェクトを通じてデータベースにアクセスします。
ラムダ式を利用した非常に複雑な「GetNextObject」型ロジックを担当するサービスクラスpublicメソッドの単体テストを作成したいと考えています。
質問:私は非常に簡単に私のDBContextをモックし、サービスメソッドをテストするオブジェクトのDBSetを作成することができます(サービスクラスは本質的にリポジトリを照会します)。これを行う正しい方法ですか、これ以上の統合テストですか?コンテキストを嘲笑することでデータベースを削除しましたが、私はまだUnitOfWorkクラスとRepositoryクラスを使用しています。私は代わりに、これらのすべてのオブジェクトの複雑な嘲笑を行う必要がありますか?
ありがとうございます! AFrieze
基本的には、オブジェクトを照会するためにunitofwork/repositoryを使用するサービスクラスのメソッドがあります。私は、クエリのロジックをテストし、正しいオブジェクトを取得していることを確認したい。私の考えは、コンテキストを模擬し、本質的に異なる状況をテストするためにメモリ内のデータベース設定を使用することでした。 – AFrieze
unitofwork/repositoryを嘲笑することでクエリロジックをテストできますか?私はこの答えがあなたをより良く奉仕することを信じます。 http://stackoverflow.com/questions/6766478/unit-testing-dbcontext –