Как я могу создать экземпляр 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>();