SuperAPI AI 工具集

tdd-rust

测试与质量

查看项目

更新于 10-16 09:52

技能介绍

tdd-rust 是 RTK 过滤器开发使用的测试驱动开发(TDD)工作流,面向 Rust 项目,核心是按 Red-Green-Refactor 循环开发各命令的输出过滤器,并检查过滤后的令牌节省效果。

主要能力与要求:

  • 测试先行:先写会失败的测试(Red),再写最少实现使其通过(Green),然后重构。
  • 真实夹具:禁止合成测试数据,须用真实命令输出保存为 tests/fixtures/<command>_raw.txt,例如 git log -20 > tests/fixtures/git_log_raw.txt、cargo test 2>&1 > tests/fixtures/cargo_test_raw.txt。含 ANSI 的输出可用 script -q /dev/null cargo test 2>&1 > tests/fixtures/cargo_test_ansi_raw.txt 捕获。
  • 快照测试:用 insta 的 assert_snapshot! 锁定输出格式,首次运行生成快照,用 cargo insta review 审查并接受。
  • 令牌节省断言:要求过滤后令牌减少 ≥20%,测试中统计输入输出令牌并断言。
  • 边界用例:空输入不 panic,畸形输入不 panic(尽量过滤或原样返回),ANSI 转义应被剥离。
  • 集成与质量门:过滤器实现为返回 Result<String> 的 filter_<cmd>(),再写 run() 接入 main.rs 的 Commands 枚举,失败时回退到原始输出并打印警告;提交前运行 cargo fmt --all && cargo clippy --all-targets && cargo test,三者须全绿且 clippy 零警告。

限制与注意:不应使用假数据、不能缺少令牌节省测试、生产代码避免 unwrap(),正则表达式不应在过滤函数内重复编译,建议用 LazyLock 静态定义。官方页面未提供安装方式、收费与许可信息。