SuperAPI AI 工具集

rtk-tdd

测试与质量

查看项目

更新于 10-16 08:10

技能介绍

用途:为 Rust 开发强制推行 TDD(红-绿-重构),在实现、测试、重构与修复缺陷任务中自动触发,约束必须先有失败的测试再写生产代码。

主要能力:给出 TDD 三定律(无失败测试不写生产代码;只写到刚好失败;只写到刚好通过);明确循环 RED(测试失败)→ GREEN(最小实现通过)→ REFACTOR(清理并运行 cargo test)。提供 Rust 习惯测试模式,包括 Arrange-Act-Assert、assert_eq!/assert!、断言错误路径、返回 Result<()> 以使用 ?、#[should_panic]、tempfile::NamedTempFile 处理文件/IO 测试。按代码类型给出模式:纯函数(输入字面量断言输出)、解析/过滤(原始字符串过滤后断言包含/不包含)、校验/安全(边界输入断言布尔)、错误处理(坏输入断言 is_err)、结构体/枚举往返(构造→序列化→反序列化→相等)。命名采用 test_{function}{scenario} 与 test{function}_{input_type}。

使用方式:在写测试时于同一文件的 #[cfg(test)] mod tests 中编写;执行 cargo test MODULE::tests::test_name 必须先失败(红),再写最小实现,再次运行必须通过(绿),必要时重构后重跑 cargo test 仍为绿;最终执行 cargo fmt && cargo clippy --all-targets && cargo test。另列提交前门禁:cargo fmt --all --check、cargo clippy --all-targets、cargo test 三项必须全过,无例外,未文档化理由不得使用 #[allow(...)]。

适用场景:Rust 库与业务逻辑开发、测试驱动实现、重构与 bug 修复,尤其是纯函数、解析、校验和错误处理代码。

限制:不适用于直接调用 Command::new() 的函数(应测试解析器而非执行)、含 std::process::exit() 的代码(先重构为 Result 再测试)、直接 I/O(SQLite、网络,用 tempfile/mock 或单独测纯逻辑)、Main/CLI 接线(由集成/冒烟测试覆盖)。第 2 步(测试必须先失败)不可跳过;若测试立即通过则说明它没有测到任何东西。该技能的具体安装方式、平台与是否收费均暂未提供。