Install
$ agentstack add skill-wenwuzhidao-mattpocock-skills-zh-tdd ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
测试驱动开发
TDD 就是红 → 绿的循环。本技能是让这个循环产出值得保留的测试的参考:什么是好测试、测试放在哪里、反模式,以及循环的规则。每一节都适用于每一轮循环——在循环之前和循环之中查阅它们,而不是在之后。
在探索代码库时,请阅读 CONTEXT.md(如果存在),以便测试名称和接口词汇与项目的领域语言匹配,并尊重你所触及区域内的 ADR。
什么是好测试
测试通过公共接口验证行为,而不是实现细节。代码可以彻底改变;测试不应改变。好的测试读起来像一份规格说明——"用户可以用有效购物车结账"准确地告诉你存在什么能力——并且它能在重构中存活,因为它不关心内部结构。
参见 [tests.md](tests.md) 中的示例,以及 [mocking.md](mocking.md) 中的 mock 准则。
接缝——测试放在哪里
接缝(seam)是你进行测试的公共边界:你在此观察行为而不深入内部的接口。测试位于接缝处,绝不针对内部实现。
只在事先约定的接缝处测试。 在编写任何测试之前,先写下受测的接缝并与用户确认。不得在未经确认的接缝处编写任何测试。你无法测试一切——事先约定接缝,正是让测试精力落在关键路径和复杂逻辑上,而非每一个边界情况的方法。
问:“公共接口是什么,我们应该测试哪些接缝?”
反模式
- 与实现耦合 —— mock 内部协作者、测试私有方法,或通过旁路验证(查询数据库而不是使用接口)。特征是:当你重构但行为并未改变时,测试却坏了。
- 同义反复 —— 断言以代码相同的方式重新计算预期值(
expect(add(a, b)).toBe(a + b)、一份以相同方式手工推导出的快照、一个断言等于自身的常量),因此它天生就会通过,永远无法与代码产生分歧。预期值必须来自独立的事实来源——一个已知正确的字面量、一个手工推演的示例、规格说明。 - 水平切片 —— 先写完所有测试,再写完所有实现。批量测试验证的是想象中的行为:你测试的是事物的形态而非面向用户的行为,测试对真实变更变得不敏感,而且你在理解实现之前就固化了测试结构。改为按垂直切片工作——一个测试 → 一次实现 → 重复,每个测试都是一枚曳光弹,根据上一轮循环所学到的做出回应。
循环的规则
- 先红后绿。 先写会失败的测试,然后只写刚好让它通过的代码。不要预测未来的测试或添加投机性的功能。
- 一次一个切片。 每轮循环一个接缝、一个测试、一个最小实现。
- 重构不属于循环。 它属于评审阶段(参见
review技能),而不是红 → 绿的实现循环。
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: WenWuZhiDao
- Source: WenWuZhiDao/mattpocock-skills-zh
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.