用途:为 Rust 项目强制执行测试驱动开发(TDD)的三条法则:没有失败的测试不写生产代码;只写刚好失败的测试(含编译失败);只写刚好让测试通过的生产代码。循环为 RED(测试失败)→ GREEN(最小实现通过)→ REFACTOR(清理后运行 cargo test)。
主要能力:给出 Red-Green-Refactor 的具体步骤:在同一个文件的 #[cfg(test)] mod tests 中写测试;用 cargo test MODULE::tests::test_name 确认失败(红);实现最小逻辑后再次运行确认通过(绿);必要时重构并重跑保持绿;最后用 cargo fmt && cargo clippy --all-targets && cargo test 作为最终门禁。强调绝不跳过确认失败这一步,若测试一开始就通过则说明它没测任何东西。同时提供符合 Rust 习惯的测试模式:Arrange-Act-Assert 结构、assert_eq!/assert!、assert!(result.is_err())、返回 Result<()> 以使用 ?、#[should_panic]、用 tempfile::NamedTempFile 做文件与 I/O 测试;并按代码类型给出模式,如纯函数输入字面量断言输出、解析过滤用原始字符串判断包含、校验安全用边界输入断言布尔、错误处理用坏输入断言 is_err、结构体枚举往返用构造→序列化→反序列化→相等。命名约定为 test_{function}{scenario} 或 test{function}_{input_type}。
限制:明确列出不宜用纯 TDD 的场景:调用 Command::new() 的函数应测解析器而非执行;std::process::exit() 需先重构为 Result 再测;直接 I/O(SQLite、网络)应使用 tempfile/mock 或单独测纯逻辑;Main/CLI 接线由集成或冒烟测试覆盖。提交前门禁要求 cargo fmt --all --check、cargo clippy --all-targets、cargo test 三项全部通过,无例外,且没有记录在案的正当理由不得使用 #[allow(...)]。关于收费、价格、平台支持等资料未提供。