laravel-tdd
作者 affaan-mlaravel-tdd 是一份面向 Laravel 的测试驱动开发指南,覆盖 PHPUnit 和 Pest。它帮助你选择单元测试、功能测试和集成测试,制定数据库策略,使用 fake,并设定覆盖率目标,形成一套实用的测试自动化工作流。
该技能得分 84/100,因为它提供了真正可落地的 Laravel TDD 工作流,触发场景清晰,测试层级指引明确,还给出了具体的数据库测试建议。对目录用户来说,如果你想要一个面向 Laravel 工作的偏意见型测试助手,它值得安装;但它更偏工作流指导,而不是工具集成,也缺少额外的支持文件。
- 使用场景清晰:新功能、Bug 修复、重构以及 Laravel 测试任务都被明确点出。
- 工作流程很具体:红-绿-重构循环、测试层级选择和数据库策略建议都能减少试错。
- 对 Laravel 的覆盖面很强:涵盖 PHPUnit/Pest、factory、数据库测试、fake、覆盖率目标,以及 model、policy、job、notification 等常见 Laravel 对象。
- 未包含脚本、参考资料或配套资源,因此执行完全依赖 `SKILL.md` 中的说明。
- 仓库带有实验性/测试信号,用户应先确认是否匹配需求,不要预期它是成熟的生产级包。
laravel-tdd 技能概览
laravel-tdd 技能是一份实用的 Laravel 测试驱动开发指南,帮助你先写测试,再用 PHPUnit 或 Pest 实现代码。它特别适合希望为新功能、缺陷修复、重构和 Laravel 测试自动化建立一套可复用流程的开发者,而不是每次都临时决定测试策略。
laravel-tdd 真正有价值的地方,在于它聚焦那些最容易拖慢团队进度的决策:该选哪一层测试、什么时候需要刷新数据库、如何处理 fake、以及怎样把覆盖率目标设定得现实可行。相比笼统的“写测试”提示,laravel-tdd skill 更能直接落地。
Laravel 测试自动化的最佳适用场景
当你需要为跨越 HTTP、认证、校验、Eloquent、job、notification 或队列的 Laravel 代码建立测试自动化时,使用 laravel-tdd 很合适。如果你的项目本来就重视快速反馈循环,并且希望这个技能帮你保持 red-green-refactor 的纪律性,它会非常有用。
它能帮你更快做出哪些判断
laravel-tdd 技能的核心价值并不在抽象的 TDD 理论,而在于帮你快速判断:
- 一个改动应该从单元测试、功能测试还是集成测试开始
- 对这个仓库来说,Pest 还是 PHPUnit 更适合作为默认选择
- 这项测试到底需要多少数据库准备
- 什么时候 fake 就够了,什么时候应该真正跑一遍边界交互
什么时候它可能不是最佳选择
如果你只是想要一个一次性的代码示例,直接用更泛的 Laravel 提示词可能更省事。laravel-tdd 技能最有价值的场景,是输出必须符合真实可运行的测试流程,并且你在意可维护性、覆盖率以及多轮迭代时的一致结构。
如何使用 laravel-tdd 技能
在 Claude Code 环境中安装这个技能
使用以下命令安装 laravel-tdd:
npx skills add affaan-m/everything-claude-code --skill laravel-tdd
这就是大多数用户需要的 laravel-tdd install 步骤。安装完成后,在 Laravel 仓库里调用它,让模型可以检查现有测试、测试配置以及正在修改的代码。
给这个技能合适的任务形状
最好的 laravel-tdd usage 不是模糊的“帮我实现一下”,而是明确的行为需求。好的输入应该说明:
- 功能或 bug 是什么
- 期望的用户可见行为是什么
- 相关的模型、路由、控制器、job 或通知有哪些
- 仓库里已经在使用哪种测试框架偏好
更强的提示词示例:
“使用 laravel-tdd 添加通过邮件链接进行无密码登录。优先沿用现有测试风格,先写会失败的功能测试,再实现最少必要代码。适当使用 fake,并保持测试符合当前 Laravel 约定。”
先读最有用的文件
对于这份 laravel-tdd guide,先从 SKILL.md 开始,再视情况浏览仓库里配套的文档。在这个仓库里,SKILL.md 是主要事实来源,最相关的章节是:
When to UseHow It WorksRed-Green-Refactor CycleTest Layers- 数据库策略说明
如果你的项目本身已经有 Laravel 约定,写测试之前先把这些约定和技能内容对照一下,避免和本地测试风格硬碰硬。
使用符合技能意图的工作流
一个好的 laravel-tdd 工作流是:
- 用一句话定义行为
- 选择能证明该行为的测试层级
- 先写会失败的测试
- 实现通过测试所需的最少代码
- 只有在测试变绿之后才做重构
当你要求模型遵循这个顺序时,可以减少凭空编造的实现细节,也更容易把输出直接用到真实的 Laravel 代码库里。
laravel-tdd 技能常见问题
laravel-tdd 只适合 PHPUnit 用户吗?
不是。这个技能同时支持 PHPUnit 和 Pest;如果项目还没有统一测试风格,新的测试通常优先用 Pest。若你的仓库里两种风格混用,最好明确告诉模型要对齐哪一种,避免引入不一致。
在使用它之前需要先有很大的测试套件吗?
不需要。laravel-tdd 技能即使在小项目里也很有用,因为它能帮助你为每一次改动选择正确的测试层级。尤其当你希望前几个测试先建立一个团队可以沿用的模式时,它会很有帮助。
它和普通 Laravel 提示词有什么区别?
普通提示词可能会生成一次能跑通、但忽略测试结构的代码。laravel-tdd 技能把测试优先流程、测试层级选择和数据库策略放在核心位置,因此更适合 Test Automation,也更可能贴合真实的 Laravel 项目。
什么情况下应该跳过这个技能?
如果你不是在测试 Laravel 行为,如果你需要一个不讲测试纪律的快速原型,或者你的应用内部有一套严格的测试框架并且与该技能的 PHPUnit/Pest 假设冲突,就可以跳过它。
如何改进 laravel-tdd 技能
提供行为目标,而不只是实现目标
laravel-tdd 最强的结果来自行为规格。不要只说“做一个通知系统”,而要说“当发票逾期时发送邮件通知,并用功能测试验证”。这样能给技能一个可测试的目标,也能减少来回沟通。
先说明边界和测试风格
提前告诉模型要测什么、怎么测。比如:
- “HTTP 端点用功能测试,定价规则用单元测试。”
- “因为测试会碰到 Eloquent 和 policy,所以用
RefreshDatabase。” - “如果现有套件是 PHPUnit,就继续用 PHPUnit;否则优先 Pest。”
这些细节能帮助 laravel-tdd skill 避免错误默认值,并输出更符合你仓库的结果。
留意两种常见失败模式
最常见的问题有两个:过度测试实现细节,以及选错测试层级。若第一次输出过于底层,就要求改成以行为为中心的重写;如果测试搭建显得太重,就要求模型尽量减少 fixture、优先使用 factory,并在可行时简化数据库准备。
用失败测试回顾来迭代
拿到第一版输出后,先检查测试在代码修改前是否真的会因为正确原因失败。如果不会,就要求更严格的断言、更干净的 fixture,或者更窄的作用范围。这是改进 laravel-tdd 在真实项目中 Test Automation 输出的最快方式。
