我正在创建一个调用创建任务方法的单元测试。创建任务方法调用一些模拟的外部对象,这些是我测试的目的,但在我测试的方法中,还有一个SaveChanges
调用可以保存我的任务。 我想要做的是在System.Data.Entity
内填充DbContext
类,以便SaveChanges
方法不再访问数据库。如何用微软假货填充DbContext?
我添加了一个假的组件,用于System.Data.Entity
但是当我使用System.Data.Entity
.Fakes它说:“无法解析符号‘正版正货’”,虽然我可以访问System.Data.Fakes
(但我have't添加System.Data假的组装)
我在我的实体上下文中伪造了其他方法,但由于该方法是从DbContext继承的,因此我无法在我的实体上伪造SaveChanges方法。
ShimDBEntities.AllInstances.SaveChanges = (x) => { ... };
上面的代码块说“无法解析符号'SaveChanges'”。
那么如何使用Microsoft Fakes来填充DbContext?
我不是垫片的这样的粉丝,尤其是在你的DbContext。我想你可能需要重新考虑你的设计以更好地测试你的代码。检查我的博客文章关于这个问题:http://sitecore.paragon-inc.com/resources/blogs-posts/the-repo-man – IronMan84 2013-02-21 16:51:08
谢谢,但该项目已在生产和设计尚未被认为可以测试,所以我正在努力与我拥有的东西一起工作 – 2013-02-21 16:54:52