我读到使用工作单元/存储库模式的主要原因之一是,在单元测试期间可以模拟您的数据访问层。如果这是真的,那么制作这样的存储库(在关于这个主题的各种博客上看到)在我看来似乎会使事情变得比它们在模拟时需要的更复杂。如果只有 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();
}
}
答案 0 :(得分:0)
是的,也许在我提出这个问题之前,我应该读一本关于面向对象编程的书(但是它们非常耗时),ICustomerRepository继承自IGenericRepository并且所有单元测试都很好。