SuperAPI AI 工具集

xunit-testing-patterns

测试与质量

查看项目

更新于 10-16 03:57

技能介绍

用途

该技能用于在 ABP Framework 应用中系统化地编写 xUnit 测试,覆盖单元测试、集成测试、测试数据种子与模拟策略。它面向需要为 AppService、领域服务、ABP 模块编写测试的开发者,帮助建立一致的测试结构、数据管理与断言方式。

主要能力

  • 提供测试项目结构模板,包括 TestBase、Application.Tests、Domain.Tests 等项目的目录布局与基础类、模块配置。
  • 支持接口优先测试:在实现存在之前针对接口编写测试,便于并行开发,测试可作为预期行为的文档,并尽早发现接口设计问题。
  • 提供测试数据常量模板,使用确定性 GUID 保证可复现性,并区分有效数据与无效数据(空字符串、空白、超长、非法邮箱等)。
  • 提供测试数据种子贡献者模板,实现幂等的数据播种。
  • 提供 AppService 测试类模板,覆盖 CRUD 操作、生命周期测试与模拟模式。
  • 归纳测试分类:正常路径测试、验证测试、授权测试、边界测试、生命周期测试(激活/停用)。
  • 使用 Trait 对测试进行组织,支持按类别或功能筛选执行,例如 dotnet test --filter "Category=Unit"。
  • 提供 NSubstitute 模拟示例,包括创建模拟、设置返回值与验证调用。
  • 提供 Shouldly 断言模式,涵盖空值检查、相等性、集合、数值比较、字符串、布尔与异常断言。
  • 说明并行测试安全,通过唯一 ID 避免数据冲突。
  • 提供 AppService 测试清单,逐项列出 Get、GetList、Create、Update、Delete 及激活/停用等应验证的场景。

使用方式

技能以模板与示例代码形式给出。开发者可按照测试项目结构创建对应目录与基础类,引用测试数据常量与种子贡献者,在测试类中通过依赖注入解析接口,使用 Shouldly 进行断言,使用 NSubstitute 模拟仓储与服务。测试可按 Trait 分类并通过 dotnet test 过滤器选择性执行。接口优先测试允许在接口契约确定后立即编写测试。

适用场景

  • 为 ABP Framework 的 AppService 编写单元测试与集成测试。
  • 为 ABP 模块创建集成测试。
  • 设置测试数据种子。
  • 模拟仓储与服务。
  • 测试授权与验证逻辑。
  • 编写领域服务测试。
  • 采用接口优先方式在实现前编写测试。

限制

资料未提供该技能的安装命令、收费方式、价格、平台支持范围或实际运行效果等信息,这些内容暂未提供。技能内容依赖 ABP Framework、xUnit、Shouldly 与 NSubstitute,具体版本要求暂未提供。