5

我正在创建一个调用创建任务方法的单元测试。create task 方法调用了一些模拟的外部对象,这是我测试的目的,但在我测试的方法中,还有一个SaveChanges调用可以保存我的任务。我想要做的是填充DbContext里面的类,System.Data.Entity以便该SaveChanges方法不再访问数据库。

我添加了一个假程序集,System.Data.Entity但是当我使用System.Data.Entity.Fakes 时,它说“无法解析符号'Fakes'”,尽管我可以访问System.Data.Fakes(但我没有为 System.Data 添加假程序集)

我在我的实体上下文中伪造了其他方法,但我不能在我的实体上伪造 SaveChanges 方法,因为该方法是从 DbContext 继承的。

ShimDBEntities.AllInstances.SaveChanges = (x) => { ... };   

上面的代码块说“无法解析符号'SaveChanges'”。

那么如何使用 Microsoft Fakes 填充 DbContext 呢?

4

1 回答 1

2

我设法通过SaveChanges在我的类中创建一个方法BaseRepository并在我拥有的所有派生存储库中使用它来做到这一点db.SaveChanges

然后我调整了我的方法BaseRepository,这样我的SaveChanges方法就什么都不做

于 2013-02-22T11:49:55.940 回答