【发布时间】:2015-01-09 18:19:11
【问题描述】:
我正在使用here from MSDN 概述的 EF6 中的新测试替身。带有最小起订量和 nUnit 的 VS2013。 一切都很好,直到我不得不做这样的事情:
var myFoo = context.Foos.Find(id);
然后:
myFoo.Name = "Bar";
然后:
context.Entry(myFoo).Property("Name").IsModified = true;
此时出现错误:
附加信息:无法调用成员“IsModified” 属性“名称”,因为类型的实体 上下文中不存在“Foo”。添加一个 实体到上下文调用 Add 或 Attach 方法 数据库集。
虽然,当我使用 AddWatch 检查上下文中的“Foos”时,我可以在运行测试之前看到我添加的所有项目。所以他们在那里。
我从文章中创建了 FakeDbSet(或 TestDbSet)。我将每个 FakeDbSet 放在 FakeContext 中的每个都被初始化的构造函数中。像这样:
Foos = new FakeDbSet<Foo>();
我的问题是,是否可以在测试替身场景中使用 FakeDbSet 和 FakeContext,以便从测试替身访问 DbEntityEntry 和 DBPropertyEntry?谢谢!
【问题讨论】:
标签: testing moq entity-framework-6 dbcontext