.net core 你能将Fakeitesy与EF Core一起使用吗

.net core 你能将Fakeitesy与EF Core一起使用吗,.net-core,in-memory-database,ef-core-2.0,fakeiteasy,.net Core,In Memory Database,Ef Core 2.0,Fakeiteasy,我想知道我是否可以将Fakeetisy与EF Core一起使用?我需要围绕CRUD操作编写一些单元测试。有人能提供一些关于我应该使用内存数据库还是FakeiTasy的见解吗?任何有关这方面的帮助都将不胜感激。谢谢。你可以看看我的包裹。它支持伪造 简单的例子: //1 - create a List<T> with test items var users = new List<UserEntity>() { new UserEntity{LastName =

我想知道我是否可以将Fakeetisy与EF Core一起使用?我需要围绕CRUD操作编写一些单元测试。有人能提供一些关于我应该使用内存数据库还是FakeiTasy的见解吗?任何有关这方面的帮助都将不胜感激。谢谢。你可以看看我的包裹。它支持伪造

简单的例子:

 //1 - create a List<T> with test items
 var users = new List<UserEntity>()
 {
   new UserEntity{LastName = "ExistLastName", DateOfBirth = DateTime.Parse("01/20/2012")},
   ...
 };
 
 //2 - build mock by extension
 var mock = users.AsQueryable().BuildMock();
 
 //3 - setup the mock as Queryable for FakeItEasy
 A.CallTo(() => userRepository.GetQueryable()).Returns(mock);
//1-创建包含测试项的列表
var users=新列表()
{
新用户实体{LastName=“ExistLastName”,DateOfBirth=DateTime.Parse(“01/20/2012”)},
...
};
//2-通过扩展构建模拟
var mock=users.AsQueryable().BuildMock();
//3-将模拟设置为可查询伪造
A.CallTo(()=>userRepository.GetQueryable()).Returns(mock);

您可以在内存数据库中找到更多使用MockQueryable+FakeiTasy的示例。或者,如果您想测试一些关系数据库特性,那么可以使用“内存中”SQLite。您不想模拟EntityFramework,因为它将测试您的实现细节,每次更改查询而不更改行为时,您都需要重写测试。从技术上讲,您可以模拟它(DbSet中的大多数方法都是虚拟的),但设置起来很困难。使用内存数据库,如下所述: