这个通用/非通用的combo存储库示例是否可以模拟?

时间:2013-04-19 01:22:29

标签: unit-testing mocking repository-pattern

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

1 个答案:

答案 0 :(得分:0)

是的,也许在我提出这个问题之前,我应该读一本关于面向对象编程的书(但是它们非常耗时),ICustomerRepository继承自IGenericRepository并且所有单元测试都很好。