我正在创建一个调用创建任务方法的单元测试。 create task方法调用一些模拟的外部对象,这是我测试的目的,但在我测试的方法中,还有一个SaveChanges
调用来保存我的任务。
我想要做的是在DbContext
内填充System.Data.Entity
类,以便SaveChanges
方法不再访问数据库。
我为System.Data.Entity
添加了一个假装配,但是当我使用System.Data.Entity
时。伪造它说“无法解析符号'假'',尽管我可以访问System.Data.Fakes
(但我有没有为System.Data添加假组件
我在我的实体上下文中伪造了其他方法,但我不能在我的实体上伪造SaveChanges方法,因为该方法是从DbContext继承的。
ShimDBEntities.AllInstances.SaveChanges = (x) => { ... };
上面的代码块说“无法解析符号'SaveChanges'”。
那么如何使用Microsoft Fakes来填充DbContext?
答案 0 :(得分:2)
我设法通过在SaveChanges
类中创建BaseRepository
方法并在我拥有db.SaveChanges
的所有派生存储库中使用它来实现此目的。
然后我给我的BaseRepository
打了电话,以便我的SaveChanges
方法无效