Как я могу создать экземпляр ObjectSet?

Я выполняю модульные тесты DAO в своем проекте, и у меня возникла проблема с использованием ObjectSet учебный класс. Я должен создать новый ObjectSet но для этого я не должен подключаться к БД. Поэтому я не могу использовать BusinessModelContainer"s CreateObjectSet() метод. Есть ли способ создать ObjectSet без этого?

Код модульного теста выглядит так:

var mock = new Mock<IBusinessModelContainerWrapper>();  
ObjectSet<Student> expectedStudent = ???;  // how can I get an instance here?
StudentDao studentDao = new StudentDao(mock.Object);  

expectedStudent.Add(someObj);  
mock.Setup(c => c.Students).Returns(expectedStudent);  

Assert.AreEqual(someObj, studentDao.GetByQuery(...));  

2 ответа

Что ты тестируешь? Вам не нужен экземпляр реального ObjectSet в вашем модульном тесте, если вы не модульное тестирование кода EF. Используйте макет IObjectSet вместо. Там нет никакого способа получить экземпляр ObjectSet без контекста.

DAL.Moles.MDALEntities.Constructor = (a) => { };
DALEntities db = new DALEntities(); //Object Context

System.Data.Objects.Moles.MObjectContext.AllInstances.CreateObjectSet<ObjectSetType>(
(a) => { return new System.Data.Objects.Moles.MObjectSet<ObjectSetType>(); }
);

ObjectSet<ObjectSetType> dbList = db.CreateObjectSet<ObjectSetType>();
Другие вопросы по тегам