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

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

我在实体上下文中伪造了其他方法,但是由于该方法是从DbContext继承的,因此无法在我的实体上伪造SaveChanges方法。

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

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

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

最佳答案

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

然后我给BaseRepository填充了填充,以便SaveChanges方法不执行任何操作

关于c# - 如何使用Microsoft Fakes伪造DbContext?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15007766/

10-15 15:06