我读到使用工作单元/存储库模式的主要原因之一是可以在单元测试期间模拟您的数据访问层。如果这是真的,那么在我看来,制作这样的存储库(在有关该主题的各种博客上看到)似乎会使事情变得比模拟时更复杂。鉴于您只有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();
}
}