SuperAPI AI 工具集

testing-patterns

测试与质量

查看项目

更新于 10-15 23:48

技能介绍

用途:为 Rust 代码库提供统一的测试模式与标准,指导如何抽象副作用、编写可维护的测试,并规定覆盖率与属性测试要求。

主要能力:

  1. 效果抽象:把副作用建模为 trait(端口),为生产环境(HTTP、DB、时钟、文件系统)和测试环境分别实现适配器,通过泛型或 trait object 注入,保持领域逻辑纯函数化。
  2. 异步效果:可用 async-trait 宏,或用 RPITIT(trait 中返回 impl Future)实现无宏、低开销方案。
  3. 假实现与模拟:优先手写 fake/stub 或内存适配器;需要基于期望的 mock 时可用 mockall,HTTP 可用 wiremock/httpmock,文件系统与数据库可用 tempfile、assert_fs 或内存后端。
  4. 属性测试:非平凡业务规则用 proptest 编写属性测试,与单元测试放在同一 tests 模块,生成器要贴近真实输入。
  5. 测试标准:覆盖率门槛为 45%,CI 执行 cargo llvm-cov --fail-under-lines 45,视为下限而非上限;集成测试需确定性,不调用真实网络。

使用方式:在 IO 边界定义 trait,注入真实或假实现;异步共享依赖可用 Arc<dyn Trait + Send + Sync>;trait 方法返回拥有所有权的数据以避免生命周期纠缠;CLI 流程可复用 tests/support/mod.rs 中的 CliFixture、RemoteRepo 等辅助设施。属性测试工作流建议通过 bd 跟踪任务,先识别高价值不变量,再研究调用方式、编写精确的 proptest 用例、运行并反思。

适用场景:Rust 项目的单元测试、集成测试、异步效果测试与业务规则验证。

限制:资料未提供具体安装命令、价格、平台支持范围或性能数据;覆盖率门槛与工具选择为该项目约定,其他项目需自行评估。