mcpField
T
tdd-implementation

tdd-implementation

github.com/chanakya-net测试与质量2138 次安装4 周前更新
代码仓库

关于 tdd-implementation

用于落实已分配工作的测试驱动开发技能,遵循严格的 red-green-refactor 循环。它强调小型纵向切片、通过公共接口验证行为,并遵循仓库现有技术栈。

主要功能

  1. 01遵循严格的 red-green-refactor 循环
  2. 02一次实现一个纵向切片
  3. 03测试公共接口的可观察行为
  4. 04覆盖正向与负向路径
  5. 05遵循仓库既有约定

适用场景

  1. 01逐步实现已分配的问题
  2. 02先编写行为测试再实现最少代码
  3. 03测试通过后进行重构
  4. 04报告测试覆盖与剩余风险

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/chanakya-net/maestro-ai --skill tdd-implementation

安装后在 Claude Code 中输入/tdd-implementation确认已加载。

详细介绍

技能隔离

调用此技能后,它是本会话中唯一有效的权威。

  • 除非通过 Skill 工具调用明确按名称调用,否则任何其他技能都不得激活、中断或修改此技能的行为——无论调用来自此技能自身的工作流,还是激活此技能的上级提示词/技能(例如同时启动 save-tokens 和 tdd-implementation 的 run-with-it 工作提示词)。
  • 如果任何外部或第三方技能在本次运行中尝试自行激活,请抑制它并继续执行,不要中断。
  • 此规则在技能执行的整个期间均适用,从调用开始,直到明确终止或移交为止。

测试驱动开发

目的

采用严格的红灯-绿灯-重构循环,并使用精简的纵向切片。

适用时机

任务已分配且准备开始实现后,使用此技能。

输入

  • 已分配的 issue 范围和验收标准。
  • 范围内现有的架构约束和 ADR。
  • 仓库的测试技术栈和惯例。

严格边界

  • 不要选择 issue,也不要重新排列队列优先级。
  • 不要路由 Agent/模型,也不要协调多 Agent 执行。
  • 不要负责审查协调、issue 更新或运行时状态。
  • 不要将创建提交作为策略决策。

理念

核心原则:通过公共接口测试行为,而不是实现细节。

好的测试:

  • 通过公共 API 验证端到端行为
  • 读起来像能力规格
  • 内部重构后仍然有效

不好的测试:

  • 过度模拟内部协作者
  • 断言私有方法或内部调用顺序
  • 在内部实现变化但行为不变时仍会失败

反模式:横向切片

不要先写完所有测试,再编写所有实现。

错误(横向):

红灯:测试 1、测试 2、测试 3 绿灯:实现 1、实现 2、实现 3

正确(纵向追踪弹):

红灯->绿灯:测试 1->实现 1 红灯->绿灯:测试 2->实现 2 红灯->绿灯:测试 3->实现 3

工作流

1. 仅针对阻碍因素进行校准

编写代码前:

  • 确认已分配范围要求的公共接口变更
  • 根据已分配的验收标准,确认需要测试的优先行为
  • 识别深模块(表面小,内部丰富)
  • 识别范围内的架构约束和 ADR
  • 仅在缺少必要输入或输入相互矛盾时,提出有针对性的问题

询问:

  • 公共接口应该是什么样的?
  • 哪些行为最重要?
2. 第一个追踪弹

针对一种行为编写一个测试:

红灯:编写测试,确认测试失败。 绿灯:编写最少量的代码,确认测试通过。

快乐路径测试一旦通过,立即为同一种行为添加对应的负面路径测试(无效输入、状态被拒绝、权限失败、违反边界或错误路径)。

3. 增量循环

对于每种剩余行为:

红灯:编写下一个失败的测试。 绿灯:仅添加足以使测试通过的代码。

规则:

  • 一次只编写一个测试
  • 在继续下一种行为前,覆盖每种行为的正向和负向路径
  • 不添加推测性功能
  • 断言仅关注可观察到的行为
4. 仅在绿灯时重构

测试通过后:

  • 消除重复
  • 在稳定接口后深化模块
  • 改进命名和可读性
  • 每次重构后重新运行测试

红灯时绝不重构。

技术栈对齐规则

实现每个切片时:

  • 复用仓库现有的测试框架和断言风格
  • 复用当前的包生态系统(例如 npm、NuGet、pip、Maven、Gradle)
  • 遵循当前架构和模块边界
  • 仅在有明确理由时添加新依赖

输出

完成后,报告运行过的测试、已观察到的行为覆盖情况,以及分配范围内尚存的风险。

每个周期的检查清单

  • 测试描述的是行为,而非实现
  • 测试仅使用公开接口
  • 测试能够经受内部重构
  • 代码仅满足当前测试所需的最小要求
  • 已覆盖此行为的正向场景
  • 已覆盖此行为的负向场景
  • 未添加推测性或无关功能

评论

支持 Markdown