作業単位/リポジトリ パターンを使用する主な理由の 1 つは、単体テスト中にデータ アクセス レイヤーをモックできるようにするためだと読みました。それが本当なら、このようなリポジトリを作成すると (このテーマに関するさまざまなブログで見られます)、モックに関しては必要以上に複雑になるように思えます。モックフレームワークで使用するICustomerRepositoryしかない場合、 GenericRepositoryのメソッドをどのようにモックしますか?
public class CustomerRepository : GenericRepository<Customer>, ICustomerRepository
{
public CustomerRepository(ObjectContext context) : base(context) { }
public IList<Customer> NewlySubscribed()
{
var lastMonth = DateTime.Now.Date.AddMonths(-1);
return GetQuery().Where(c => c.Inserted >= lastMonth)
.ToList();
}
public Customer FindByName(string firstname, string lastname)
{
return GetQuery().Where(c => c.Firstname == firstname && c.Lastname == lastname).FirstOrDefault();
}
}