laravel-tdd
作者 affaan-mlaravel-tdd 是一份適用於 Laravel 的測試驅動開發指南,涵蓋 PHPUnit 與 Pest。它可協助你判斷單元、功能與整合測試的選擇,規劃資料庫策略、使用 fakes、設定覆蓋率目標,以及建立實用的測試自動化工作流程。
這個技能的評分是 84/100,因為它提供了真正可用的 Laravel TDD 工作流程,包含清楚的使用情境、測試層級指引與具體的資料庫測試建議。對目錄使用者來說,如果你想要一個帶有明確立場的 Laravel 測試助手,它值得安裝;但它更偏向工作流程指引,而不是工具整合,且缺少額外支援檔案。
- 使用情境清楚:新功能、修 bug、重構與 Laravel 測試任務都明確列出。
- 作業流程具體:red-green-refactor 迴圈、測試層級選擇與資料庫策略指引,能減少猜測成本。
- 對 Laravel 的實用性高:涵蓋 PHPUnit/Pest、factory、資料庫測試、fakes、覆蓋率目標,以及 model、policy、job、notification 等常見 Laravel 目標。
- 沒有提供 scripts、參考資料或支援資源,因此實作完全依賴 `SKILL.md` 的說明。
- 該倉庫帶有 experimental/test 訊號,使用者應先確認是否符合需求,不要期待它是一個打磨完善的 production-grade 套件。
laravel-tdd 技能概覽
laravel-tdd 技能是一套實用的 Laravel 測試驅動開發指南,先寫測試,再用 PHPUnit 或 Pest 實作程式碼。它特別適合想要建立可重複工作流程的開發者,用於新功能、修 bug、重構,以及 Laravel 的測試自動化,而不需要每次都臨時決定測試策略。
laravel-tdd 之所以有價值,是因為它聚焦在那些最容易拖慢團隊進度的決策:該用哪一層測試、什麼時候要做資料庫重置、如何處理 fake,以及怎麼把覆蓋率目標訂得合理。這讓 laravel-tdd skill 比一般「幫我寫測試」的提示更具可執行性。
Laravel 測試自動化的最佳適用情境
當你需要為跨越 HTTP、驗證、Eloquent、jobs、notifications 或 queues 的 Laravel 程式碼做測試自動化時,就很適合用 laravel-tdd。如果你的專案本來就重視快速回饋迴圈,並且希望這個 skill 幫你維持 red-green-refactor 的紀律,它會特別合用。
它能讓你更快做出哪些決定
laravel-tdd 技能最大的價值不在抽象的 TDD 理論,而是在幫你快速判斷:
- 這次變更應該先從 unit test、feature test,還是 integration test 開始
- 這個 repo 預設該用 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 repo 中呼叫它,讓模型能檢視既有測試、測試設定,以及正在變更的程式碼。
先把任務形狀給對
最好的 laravel-tdd usage 不是從空泛的「幫我實作功能」開始,而是從具體的行為需求開始。好的輸入應該描述:
- 功能或 bug
- 預期的使用者可見行為
- 相關的既有 model、routes、controllers、jobs 或 notifications
- repo 已經使用的測試框架偏好
較強的提示範例如下:
“Use laravel-tdd to add passwordless login via email link. Prefer existing test style, write the failing feature test first, then implement the minimum code. Use fakes where appropriate and keep the tests aligned with current Laravel conventions.”
先讀最有用的檔案
這份 laravel-tdd guide 建議先從 SKILL.md 開始,再視情況掃描 repository 的支援文件。在這個 repo 裡,SKILL.md 是主要依據,最相關的段落包括:
When to UseHow It WorksRed-Green-Refactor CycleTest Layers- 資料庫策略指引
如果你的專案本身已有 Laravel 慣例,請先把它們和這個 skill 對照,再開始寫測試,避免和本地測試風格硬碰硬。
採用符合技能意圖的工作流程
一個好的 laravel-tdd workflow 是:
- 用一句話定義行為
- 選擇能證明該行為的測試層級
- 先寫會失敗的測試
- 只實作通過測試所需的最小程式碼
- 只有在測試變綠之後才重構
當你要求模型遵循這個順序時,可以減少憑空捏造的實作細節,也更容易把輸出直接套用到真實的 Laravel codebase。
laravel-tdd 技能 FAQ
laravel-tdd 只適合 PHPUnit 使用者嗎?
不是。這個技能同時支援 PHPUnit 和 Pest,而且若專案本身沒有既定標準,新的測試通常會優先建議使用 Pest。若你的 repo 是混合風格,請明確告訴模型要對齊哪一種寫法,避免引入不一致。
使用前一定要有很大的測試套件嗎?
不用。laravel-tdd 技能就算在小型專案裡也很有幫助,因為它能幫你為每次變更選對測試層級。當你希望前幾個測試先建立一個整個團隊都能沿用的模式時,它尤其有用。
這跟一般的 Laravel 提示有什麼不同?
一般提示可能會產生一次能跑的程式碼,但不一定顧到測試結構。laravel-tdd 技能把測試先行流程、測試層級選擇,以及資料庫策略放在核心位置,因此更適合 Test Automation,也更有可能真正貼合實際的 Laravel 專案。
什麼時候應該跳過這個技能?
如果你不是在測 Laravel 行為、只想要沒有測試紀律的快速原型,或是你的應用程式已有嚴格且與此技能的 PHPUnit/Pest 假設衝突的內部測試框架,那就可以先跳過。
如何改進 laravel-tdd 技能
提供行為目標,不只講實作目標
laravel-tdd 最強的結果通常來自行為規格,而不是實作描述。不要只說「建立通知系統」,而是說「當發票逾期時發送 email 通知,並用 feature test 驗證」。這樣能給 skill 一個可測試的目標,也能減少來回溝通。
先說清楚邊界與測試風格
一開始就告訴模型哪些東西要測、怎麼測。例如:
- “Use a feature test for the HTTP endpoint and a unit test for the pricing rule.”
- “Use
RefreshDatabasebecause the test touches Eloquent and policies.” - “Use Pest unless the existing suite is PHPUnit.”
這些細節能幫 laravel-tdd skill 避免套用錯誤預設,輸出也會更符合你的 repo。
留意兩種常見失誤
最常見的問題是過度測試實作細節,以及選錯測試層級。如果第一次輸出太偏底層,就要求改成以行為為中心的版本。如果測試設定顯得太重,則要求模型盡量減少 fixture、優先使用 factories,並在可行範圍內簡化資料庫設定。
透過失敗測試回顧持續迭代
拿到第一版輸出後,先檢查測試在程式碼修改前,是否真的會因為正確的原因而失敗。如果不會,就要求更嚴謹的 assertion、更乾淨的 fixture,或更小的範圍。這是把 laravel-tdd 輸出逐步調整到真正適合實際專案的 Test Automation 的最快方法。
