Для моего модульного тестирования мне нужно подделать репозиторий. Я легко смог подделать все методы, кроме метода Find, который принимает делегат Linq Expression в качестве параметра.
Мой поддельный код репозитория указан ниже (ненужный код удален). Код, который я пробовал использовать, показан в методе Find. Ошибка компилятора, которую я получаю от VS:
«System.Collections.Generic.List» не содержит определения «Где» и лучшей перегрузки метода расширения «System.Linq.Queryable.Where (System.Linq.IQueryable, System.Linq.Expressions .Expression>) 'имеет недопустимые аргументы "
Есть идеи, как я изгибаю параметр критерия в требуемый тип аргумента?
public class FakeCourseRepository : IRepository<Course>
{
private List<Course> courseList;
public FakeCourseRepository(List<Course> courses)
{
courseList = courses;
}
public IList<Course> Find(System.Linq.Expressions.Expression<Func<Course, bool>> criteria)
{
return courseList.Where<Course>(criteria);
}
}