如何创建一个 ObjectSet 实例?

7
我正在我的项目中编写DAO单元测试,使用ObjectSet类时遇到问题。我必须创建一个新的ObjectSet,但是为了做到这一点,我不能连接到数据库。因此,我无法使用BusinessModelContainerCreateObjectSet()方法。有没有办法在没有连接的情况下创建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个回答

12

你在测试什么?除非你正在进行EF代码的单元测试,否则你不应该需要真正的ObjectSet实例。请改用IObjectSet的模拟。没有办法在没有上下文的情况下获取ObjectSet的实例。


3
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>();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接