工作,我一直在使用这些MSDN guidlelines设置嘲讽:Find方法不EF6.1模拟
Testing with a mocking framework (EF6 onwards)
var bsAc = _db.BusAcnts.FirstOrDefault(i => i.Id == 1);
返回一个帐户,但
var bsAc = _db.BusAcnts.Find(1);
回报嘲笑时,空。 Find
仅在使用模拟测试时失败,它在生产中正常工作。
BusAcnt:(ID是主键),
public class BusAcnt
{
public int Id { get; set; }
...
}
见我的设置here的其余部分。
在调试中,我钻进了本地|这| | MyDbContext和所有模拟账户都被加载,FirstOrDefault
返回预期账户。
在上双打同伴的文章:
Testing with your own test doubles (EF6 onwards)
他们谈论实施Find
但这不是嘲讽的文章中提到。
是否有其他人设法使Find
方法与嘲笑一起工作?
有没有其他人遇到过这个问题,是EF6.1模拟还是代码错误?请让我感兴趣的是,从他人那里了解他们用Find
方法嘲笑的经历。
您是否需要在测试双重文章中创建Test DbSet?模拟文章中的设置的语法是什么?
是'Id'您'BusAcnts'实体的关键? – Tim
Id是主键。 – Joe