假装Shim Generic Repository <object> not working </object>

时间:2013-05-24 21:32:13

标签: c# asp.net-mvc-4 microsoft-fakes

    List<Customer> customerList= new List<Customer>();
    List<Employee> employeeList= new List<Employee>();

Fakes.ShimDataServiceRepository<object>.AllInstances.GetEntitiesExpressionOfFuncOfT0Boolean = (instance, filter) =>
    {     
           if (filter.Body.ToString().Contains("sg.CustomerName"))
                 {
                     return customerList.AsQueryable();
                 }
                 else if (filter.Body.ToString().Contains("ib.EmployeeName"))
                 {
                     return employeeList.AsQueryable();
                 }

         return null;
    };

当我的测试方法调用业务层方法和业务层方法调用unitofwork.CustomerRespository.GetEntities(过滤条件)时,调用转到

this.GetEntityQuery(filter, orderBy, includeProperties, startPage, pageSize);

并且它会调用实际的数据库调用和错误。

电话没有达到虚假

中的要点
return customerList.AsQueryable();

当我使用特定类'Customer'而不是像

这样的对象时
`Fakes.ShimDataServiceRepository<Customer>`

工作正常。但我需要一般的假方法。
请帮忙

1 个答案:

答案 0 :(得分:0)

泛型类的每个实例都是一个单独的.NET类型。 Fakes API要求您单独填充每个实例,并且此时不提供单个API来填充多个类型。