Test-Driven Development 技能评估
核心用法
本技能提供了一套完整的测试驱动开发(TDD)工作流,通过三种输入模式适配不同场景:Spec模式(解析.spec.md的Given/When/Then验收标准自动生成测试桩)、Task模式(从.code-task.md提取需求并设计测试场景)、Description模式(针对临时任务澄清需求后编写失败测试)。所有模式均遵循严格的RED → GREEN → REFACTOR循环。
技能强调模式发现前置步骤,要求通过ripgrep扫描现有测试文件,镜像本地命名规范、断言风格和辅助工具。测试位置规则明确:单模块用内联#[cfg(test)],跨模块用crates/<crate>/tests/集成测试,CLI行为单独存放。
显著优点
1. 结构化流程:强制测试优先,杜绝"先实现后补测试"的反模式
2. 多模式适配:三种输入方式覆盖从正式规格到临时描述的全场景
3. 生态集成:内置proptest使用指南(纯函数、确定性输出、非平凡输入空间才启用),以及通过cargo tarpaulin生成覆盖率报告的backpressure机制
4. 可编程支持:调用ralph_core::preflight模块实现验收标准自动解析
潜在局限
- 高度依赖Rust生态系统(
cargo test、proptest、cargo tarpaulin),跨语言适用性受限 - 覆盖率工具在部分环境可能无法运行,需回退到"针对性测试证据"
- 模式发现步骤假设代码库已有成熟测试范例,新项目可能缺乏参照
适合人群
Rust开发者、追求严格TDD纪律的团队、需要自动化验收标准追踪的工程项目。
常规风险
- 生成的测试桩若未经审查直接通过,可能产生"虚假绿色"(测试通过但未实际验证行为)
proptest引入会增加编译时间和依赖复杂度,需严格遵循使用条件- 覆盖率报告缺失时,completion事件的证据效力下降