使用 ASP.NET Core 和 NUnit 实施集成测试
Implement Integration Testing with ASP.NET Core and NUnit
我刚开始使用 Asp 核心 2.2 的 NUnit 集成测试,我已经有核心 RESTful Api 但不知道如何配置 NUnit 以实现集成测试。
通常我使用迁移文件夹中的配置文件实现它,如下所示,但 ASP Core 2.2 中不再存在,我不知道新的替代方案是什么。
var configuration = new Migrations.ApplicationDbContextModelSnapshot();
var migrator = new Migrator(configuration);
migrator.Update();
所以,如果您不明白我的问题,我只需要一个明确的 link 来将 NUnit 集成测试与 .Net Core 2.2 一起使用。
集成测试应该不连接到真实的数据库。集成测试是关于确保组件一起正确运行,而不是任何具体的后端实现。因此,您应该使用 EF Core 的内存数据库提供程序。这将自动 "migrate" (实际上它只是在每次实例化时设置您的数据库在内存中的表现形式),因此无需采取任何进一步的操作。
请记住,EF-in-memory 数据库也是一个非关系数据库,因此如果您想保持实体(如外键)的关系完整性,您应该使用 SqlLite 内存数据库。下面是一个例子:
var connection = new SqliteConnection("Data Source=:memory:");
services.AddDbContext<WebApi1DbContext>(options => options.UseSqlite(connection));
我刚开始使用 Asp 核心 2.2 的 NUnit 集成测试,我已经有核心 RESTful Api 但不知道如何配置 NUnit 以实现集成测试。 通常我使用迁移文件夹中的配置文件实现它,如下所示,但 ASP Core 2.2 中不再存在,我不知道新的替代方案是什么。
var configuration = new Migrations.ApplicationDbContextModelSnapshot();
var migrator = new Migrator(configuration);
migrator.Update();
所以,如果您不明白我的问题,我只需要一个明确的 link 来将 NUnit 集成测试与 .Net Core 2.2 一起使用。
集成测试应该不连接到真实的数据库。集成测试是关于确保组件一起正确运行,而不是任何具体的后端实现。因此,您应该使用 EF Core 的内存数据库提供程序。这将自动 "migrate" (实际上它只是在每次实例化时设置您的数据库在内存中的表现形式),因此无需采取任何进一步的操作。 请记住,EF-in-memory 数据库也是一个非关系数据库,因此如果您想保持实体(如外键)的关系完整性,您应该使用 SqlLite 内存数据库。下面是一个例子:
var connection = new SqliteConnection("Data Source=:memory:");
services.AddDbContext<WebApi1DbContext>(options => options.UseSqlite(connection));