Skip to content
bitzorcas
EN

Reference

测试夹具和种子数据

测试夹具和 CSV 种子数据 — 测试如何使用种子数据进行确定性测试、CSV 种子框架和测试数据库设置。

Last updated

BitzOrcas 使用基于 CSV 的种子数据用于生产初始化和测试夹具。相同的 CsvSeedStepBase<T> 框架同时支持两者。

种子数据位置

src/BuildingBlocks/BitzOrcas.Infrastructure.SqlSugar/Seeders/Assets/
├── Identity/ → platform_tenant.csv, sys_role.csv 等
└── MasterData/ → sys_country.csv, sys_language.csv 等

测试数据库设置

集成测试使用以下步骤初始化测试数据库:

  1. --init-schema 标志通过 SqlSugar CodeFirst 创建表
  2. --seed-demo 通过 ISeedRunner 加载 CSV 种子数据
  3. 测试基于已种子的数据运行

CsvSeedReader

public class CsvSeedReader
{
// 读取 CSV,通过头部映射到实体属性
public List<T> Read<T>(Stream csvStream) where T : class;
}

CsvSeedStepBase

public abstract class CsvSeedStepBase<T> : ISeedStep
where T : class, new()
{
// 读取 CSV → 映射到实体 → 通过 SqlSugar Storageable upsert
public override async Task ExecuteAsync(...)
{
var records = reader.Read<T>(csvStream);
await db.Storageable(records).ExecuteCommandAsync();
}
}

添加测试夹具

  1. Seeders/Assets/ 添加 CSV 文件(或嵌入为资源)
  2. 创建继承 CsvSeedStepBase<T> 的种子步骤
  3. 在测试设置中注册

另见