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 可能很困难,因为上下文要跟上很多移动部分。我成功地使用了一个有助于设置内存中数据上下文的库。不完全是一个直接的答案,但我 运行 在尝试使用其他模拟框架进行直接模拟时遇到了很多问题
此库作为 nuget 包提供。
我刚刚安装了 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 可能很困难,因为上下文要跟上很多移动部分。我成功地使用了一个有助于设置内存中数据上下文的库。不完全是一个直接的答案,但我 运行 在尝试使用其他模拟框架进行直接模拟时遇到了很多问题
此库作为 nuget 包提供。