我刚刚安装了Telerik.JustMock.EntityFramework软件包,我正在尝试。
我试过这个:
var ctx = EntityFrameworkMock.Create<MyDbContext>().PrepareMock();
var source = new List<MyEntity>()
{
new MyEntity(){ Description = "asd" },
new MyEntity(){ Description = "asd2" },
};
ctx.MyEntities.Bind(source);当我检索这样做的数据时,它起作用了:
ctx.MyEntities.ToList();但如果我做下一个:
ctx.Set<MyEntity>().ToList();它返回一个空集合。
你知道我做错了什么吗?或者,您知道如何模拟上下文返回的集合吗?因为我使用的是存储库模式,所以我希望测试存储库中的方法,即使用给定的上下文。
顺便说一句,这是我的MyDbContext课程:
public class MyDbContext : DbContext{
public DbSet<MyEntity> MyEntities { get; set; }
}发布于 2015-01-16 13:18:07
模拟DbContext可能很困难,因为上下文中有很多可移动的部分可以与之保持一致。我成功地使用了一个库来帮助建立内存中的数据上下文。不完全是一个直接的答案,但我遇到了许多问题,试图用其他的模拟框架直接模拟
http://effort.codeplex.com/
此库可作为nuget包使用。
https://stackoverflow.com/questions/27984684
复制相似问题