Skip to main content

test-driven-development

当用户询问"如何证明代码正确"、"测试应该什么时候写"或"如何确保代码质量"时调用此 skill。不适用于:纯理论讨论、不需要验证的场景、探索性编程。关键 trigger 信号:测试、TDD、证明、验证、RED-GREEN-REFACTOR、tests are proof。

Jump to install

Source facts

Repository
Natsummerance/agents
Last source activity
August 27, 2026 at 07:35
Detected SKILL.md language
Chinese
Stars
3
Forks
0

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

File Explorer
3 files

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
test-driven-development
description
当用户询问"如何证明代码正确"、"测试应该什么时候写"或"如何确保代码质量"时调用此 skill。不适用于:纯理论讨论、不需要验证的场景、探索性编程。关键 trigger 信号:测试、TDD、证明、验证、RED-GREEN-REFACTOR、tests are proof。
source_book
Agent Skills Addy Osmani
source_project
addyosmani/agent-skills
source_chapter
Commands table / VERIFY phase + auto-build description
tags
["tdd","testing","verification","red-green-refactor"]
related_skills
["spec-driven-development","auto-build-mode","faster-is-safer"]
# SKILL.md - Test-Driven Development(测试驱动开发) ## R (Reading) - 原文引用 > "/test | Prove it works | Tests are proof" > > "every task is still test-driven and committed individually" ## I (Interpretation) - 方法论骨架 **核心思想**:测试是证明,不是可选的。每个任务都是测试驱动的,遵循 RED-GREEN-REFACTOR 循环。这种方法确保代码正确性有可验证的证据支持,而不是凭感觉声明成功。 **关键要素**: 1. **Tests are proof**: 测试作为证据,证明代码按预期工作 2. **Test-driven**: 每个任务都先写测试再写实现 3. **Committed individually**: 每个任务单独提交,便于追溯 ## A1 (Past Application) - 书中作者用过的案例 Agent Skills 的 `/test` 命令对应 VERIFY 阶段,强调"Tests are proof"。Addy Osmani 在描述 `/build auto` 模式时特别指出:"every task is still test-driven and committed individually",即使在自动化模式下也不跳过测试环节。 这种设计确保 AI agents 在自主工作时仍然保持测试驱动的习惯,保证代码质量。 ## A2 (Future Trigger) - 用户在什么情境下会需要这个 **适用场景**: - 用户不确定如何证明代码正确 - 用户想建立测试驱动的开发习惯 - 用户遇到回归 bug 频发的问题 - 用户想知道测试在开发流程中的位置 **与相邻 skill 的区分**: - 与 `spec-driven-development` 的区别:test-driven-development 关注**代码正确性验证**(写代码时),而 spec-driven-development 关注**需求明确化**(写代码前)。两者互补:先明确需求,再测试驱动实现。 - 与 `auto-build-mode` 的区别:test-driven-development 是手动编写测试和实现,而 auto-build-mode 是自动生成计划并实现(但仍保留测试驱动)。前者更灵活,后者更高效。 ## E (Execution) - 可执行步骤 1. **写失败测试(RED)** - 根据规格说明编写测试用例 - 运行测试确认它失败 - 确保测试覆盖核心功能和边缘情况 - 完成标准: 测试运行结果为失败(RED),且用例同时覆盖核心功能与边缘情况 2. **写最少代码让它通过(GREEN)** - 只写能让测试通过的最少代码 - 不要过度设计或添加额外功能 - 运行测试确认它通过 - 完成标准: 目标测试全部转为通过且代码中无超出测试要求的功能 3. **重构(REFACTOR)** - 在测试保护下优化代码结构 - 确保重构后测试仍然通过 - 提高代码可读性和可维护性 - 完成标准: 重构提交后测试套件保持全绿 4. **单独提交** - 每个任务完成后单独提交 - 提交信息清晰描述变更内容 - 便于追溯和回滚 - 完成标准: 一个任务对应一次提交,提交信息能定位到对应任务 ## B (Boundary) - 什么时候不适用 **不适用场景**: - 纯理论讨论(不涉及实际代码) - 快速原型验证(不需要长期维护) - 一次性脚本(不需要测试保障) - 探索性编程(TDD 可能过于严格) **作者的盲点**: - Addy Osmani 假设所有任务都适合测试驱动,但实际上某些场景(如 UI 调整、配置修改)可能不适合 - agent-skills 缺少对测试覆盖率目标的具体指导 - 没有提到如何选择测试框架或编写高质量的测试用例
View on GitHub