Поверьте мне, я прочитал много статей и вопросов здесь, на SO. Но я не нашел удовлетворительного ответа. Возьмите Matt Robert's Tutorial в шаблоне хранилища и модульном тестировании в качестве примера:Тестирование запросов Linq EF и шаблон хранилища
Я не понимаю, что оба хранилища содержат ту же логику запросов? Кажется, это так, и если да, то как это полезная модель? Это будет означать, когда я изменяю запрос в поддельном репозитории, я должен изменить логику запросов в реальном репозитории - это звучит как PITA и рецепт проблем.
Я хотел бы оставить запрос в один метод и проверить этот метод. Позднее мне пришло в голову, я мог бы сделать так:
//Student can be from the db or a fake list
public person GetStudent(IEnumerable<Student> students,int studentid)
{
return students.FirstOrDefault(s =>s.PersonId ==studentid);
}
//unit test
Assert.IsNull(GetStudent(fakeStudentList, -1))
//actual code
var student = GetStudent(entities.students,-1)
Есть ли шаблон, который имитирует выше? Если так, то, что это? Или это как работает шаблон хранилища? Если да, то почему это похоже на то, что шаблон репозитория дублирует код?
А также, усилия .. смотреть на эту ужасающую example: S?
Отличный вопрос и отличное имя пользователя (не могу дождаться книги 13!). +1 – Brian
@Brian Книга уже отсутствует: P –
Дух ... Я имел в виду книгу 14, и я вижу, что ** это уже уже! – Brian