Entity Framework: 用 JustMock 模拟

Entity Framework: Mocking with JustMock

我刚刚安装了 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();

它 returns 一个空集合。

你知道我做错了什么吗?或者你知道我如何模拟我的上下文 returns 的集合吗?因为我正在使用存储库模式并且我想测试存储库中的方法,它正在使用给定的上下文。

顺便说一句,这是我的 MyDbContext class:

public class MyDbContext : DbContext{
    public DbSet<MyEntity> MyEntities { get; set; }
}

模拟 DbContext 可能很困难,因为上下文要跟上很多移动部分。我成功地使用了一个有助于设置内存中数据上下文的库。不完全是一个直接的答案,但我 运行 在尝试使用其他模拟框架进行直接模拟时遇到了很多问题

http://effort.codeplex.com/

此库作为 nuget 包提供。