tdd
Installation
SKILL.md
测试驱动开发
TDD 就是红 → 绿循环。这个 skill 是让那个循环产出值得保留的测试的参照:什么是好测试、测试该落在哪、反模式、循环的规矩。每节在每个循环都适用——循环之前和之中查阅,不是之后。
探索代码库时,读 CONTEXT.md(如果存在),让测试名和接口术语匹配项目的领域语言;尊重你要触碰区域的 ADR。
什么是好测试
测试通过公开接口验证行为,不验证实现细节。代码可以彻底重写;测试不应该变。好测试读起来像规约——"user can checkout with valid cart"准确告诉你存在什么能力——并在重构后存活,因为它不关心内部结构。
示例见 tests.md,mock 指引见 mocking.md。
接口——测试落在哪
接口(seam)是你测试的公开边界:你能观察行为、又不把手伸进内部的那一面。测试落在接口上,永远不直接对内部下手。
只在预先商定的接口上测试。 写任何测试之前,把要测的接口列出来、跟用户确认。没确认过的接口不写测试。你没法什么都测——预先约定接口,才能让测试精力落在关键路径和复杂逻辑上,而不是散到每个边界情况。
问:"公开接口是什么?该测哪些接口?"