SuperAPI AI 工具集

rust-write-tests

编程与开发

查看项目

更新于 10-16 03:46

技能介绍

用途:帮助编写能捕捉真实缺陷的 Rust 测试。每个测试须守护一条明确不变式,而非仅证明代码“能跑”。

主要能力:

  1. “What Could Break?”框架:写测试前回答四问——维护什么不变式、什么边界会破坏它、什么平台差异会浮现、未来重构会意外破坏什么。
  2. 五类测试转化:弱断言改为整对象比较(pretty_assertions::assert_eq);单一 happy path 改为覆盖正常/错误/边界/平台的针对性用例集;内联 mod tests 改为同级 _tests.rs 文件(mod.rs 用 mod_tests.rs);字符串测试数据改为类型化结构体构造(工厂函数);fixtures 中的 HashMap 改为 BTreeMap 以保证确定性。
  3. Flake 排查协议:定位竞态窗口、用事件驱动同步替代 timing、断言与顺序无关、压力测试 cargo nextest run -p <crate> -j 2 --no-fail-fast --stress-count 50 --status-level leak、在提交信息中记录非确定性来源。
  4. 意图断言:断言操作与目标(如 operation()/target()),而非精确命令字符串。
  5. 命名规范:{subject}{scenario}{expected_outcome}。

用法与工具:HTTP 用 wiremock::MockServer;文件系统用 TempDir(tempfile);异步用 #[tokio::test];快照用 insta::assert_snapshot!;枚举用 assert_matches!。自检清单要求使用 pretty_assertions、整对象比较、每个函数至少 3 个测试、无 sleep 断言、无环境变量变更等。

限制:资料未提供所属平台、安装方式、收费标准与具体适用 Rust 版本,暂未提供。