test-driven-development
将测试驱动开发应用于您的代码
也可从以下获取: sickn33,Cycleaddict,davila7,ZhanlinCui,DMJGilbert,Cygnusfear,CodingCossack,obra
事后编写测试无法证明任何东西。此技能通过强制您先编写失败的测试来执行TDD规范,确保您的测试真正验证行为并在bug进入生产环境之前发现它们。
下载技能 ZIP
在 Claude 中上传
前往 设置 → 功能 → 技能 → 上传技能
开启并开始使用
测试它
正在使用“test-driven-development”。 Help me implement a password validator using TDD
预期结果:
- 首先,编写一个失败的测试:test('rejects passwords shorter than 8 characters', () => { expect(validatePassword('abc123')).toBe(false); })
- 观察它失败 - 确认测试有效且功能��失
- 编写最少的代码:function validatePassword(pwd) { return pwd.length >= 8; }
- 观察它通过 - 确认实现有效
- 下一个测试:test('requires at least one number', () => { expect(validatePassword('longpassword')).toBe(false); })
- 继续循环直到满足所有要求
安全审计
安全This is a documentation-only skill containing Test-Driven Development guidelines. No executable code, network calls, file system access, or external commands. Pure educational content. All 53 static findings are false positives from the scanner misinterpreting markdown code block delimiters and JSON metadata as executable code.
风险因素
🌐 网络访问 (2)
📁 文件系统访问 (1)
⚙️ 外部命令 (27)
质量评分
你能构建什么
有信心地实现新功能
使用TDD系统地构建功能,确保每个部分都能正确工作,并且以后可以安全地进行重构。
修复bug而不产生新的bug
先编写一个失败的测试来重现bug,然后用最少的代码修复它,并通过全面的测试覆盖防止回归。
确保代码质量标准
验证所有新代码都遵循TDD实践,并在批准拉取请求之前具有适当的测试覆盖。
试试这些提示
我需要实现一个用户身份验证端点。使用TDD,帮助我编写第一个失败的测试,检查有效的电子邮件格式,然后我再编写任何实现代码。
我们的折扣计算中存在一个bug,0%的折扣会抛出错误。帮助我先编写一个失败的测试,然后实现最少的修复。
我想把这个混乱的函数重构成更小的函数。首先,帮助我编写针对当前行为的测试,然后逐步指导我进行重构。
审查这段代码和测试。他们遵循TDD了吗?检查是否先编写了测试,是否观察了它们失败,以及实现是否是最少的。
最佳实践
- 总是先观察测试失败 - 立即通过不能证明任何东西
- 编写尽可能简单的通过代码 - 不要添加额外功能或重构
- 删除任何没有失败测试就编写的代码 - 没有例外
- 在测试中使用真实代码,除非绝对必要否则避免使用模拟
避免
- 在测试之前编写实现 - 违反核心原则
- 在编写测试时保留'参考'代码 - 您会改编它而不是重新开始
- 在实现后编写测试 - 您会失去验证测试是否真正有效的功能
- 添加测试要求之外的功能 - 违反最少实现规则