如何创建对象集的实例

本文关键字:实例 创建对象 | 更新日期: 2023-09-27 18:01:14

我正在我的项目中进行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(...));  

如何创建对象集的实例

你在测试什么?除非对 EF 代码进行单元测试,否则在单元测试中不需要实际ObjectSet实例。请改用模拟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>();