2

我刚刚安装了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; }
}
4

1 回答 1

2

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

http://efort.codeplex.com/

该库以 nuget 包的形式提供。

于 2015-01-16T13:18:07.973 回答