技能 tdd
📦

tdd

安全

使用測試驅動開發編寫測試

也可从以下获取: Benny9193

在程式碼後編寫測試會產生脆弱的系統,在重構時容易壞掉。此技能會引導你完成測試驅動開發,讓測試在實作之前先定義行為,從而產生更乾淨的程式碼和可靠的重構。

支持: Claude Codex Code(CC)
📊 71 充足
1

下载技能 ZIP

2

在 Claude 中上传

前往 设置 → 功能 → 技能 → 上传技能

3

开启并开始使用

测试它

正在使用“tdd”。 幫我構建一個將商品添加到購物車的功能

预期结果:

我會引導你完成這個功能的 TDD。第一個問題:當用戶添加商品時應該發生什麼?我們應該支持數量嗎?哪些行為應該是可驗證的?

正在使用“tdd”。 為用戶認證編寫測試

预期结果:

對於認證測試,專注於公共介面:登入、登出、會話處理。我建議使用整合式測試而不是模擬內部認證邏輯。你的認證使用哪些外部服務?

正在使用“tdd”。 我的測試每次重構都會壞掉

预期结果:

你的測試可能耦合到實作細節。好的測試透過公共介面驗證行為。讓我們識別哪些測試會壞掉以及它們在測試什麼。

安全审计

安全
v1 • 4/19/2026

All 48 static findings are false positives. The skill contains educational TDD documentation with code examples. External command flags were triggered by ASCII workflow diagrams (RED→GREEN patterns). Cryptographic algorithm flags were triggered by testing patterns like jest.mock() and StripeClient(). No malicious code or prompt injection detected.

6
已扫描文件
307
分析行数
0
发现项
1
审计总数
未发现安全问题
审计者: claude

质量评分

38
架构
100
可维护性
87
内容
30
社区
100
安全
91
规范符合性

你能构建什么

使用 TDD 構建新功能

當開始新功能時,此技能會幫助你先編寫定義預期行為的測試,然後引導你進行最少實作以通過這些測試。

使用失敗的測試修復錯誤

當錯誤被回報時,此技能會幫助你編寫重現錯誤的失敗測試,然後引導你修復程式碼以使測試通過。

透過重構改善既有程式碼

在重構既有程式碼之前,此技能會幫助你編寫擷取目前行為的整合測試,確保重構不會破壞既有功能。

试试这些提示

使用 TDD 的新功能
我需要為 [module] 添加 [feature]。幫助我使用 TDD 來構建這個。首先問我應該先測試哪些行為。
使用 TDD 修復錯誤
這裡有個錯誤:[description]。幫助我編寫一個失敗的測試來重現這個問題,然後修復它。
改善測試覆蓋率
我想要 [module] 的更好的測試。審查我目前的測試並建議遵循 TDD 原則的改進。
安心重構
我想重構 [module]。幫助我先編寫擷取目前行為的測試,然後引導我的重構。

最佳实践

  • 一次只編寫一個測試,並只編寫足夠通過測試的程式碼
  • 只使用公共介面;測試應該能承受內部重構
  • 偏好驗證可觀察行為的整合式測試,而不是模擬內部元件

避免

  • 先編寫所有測試然後再全部實作(橫向切片)
  • 模擬內部協作者而不是透過公共介面測試
  • 編寫驗證實作細節而不是行為的測試

常见问题

在 TDD 中什麼時候應該編寫測試?
在任何實作程式碼之前編寫測試。測試定義了你想要在構建之前實現的行為。
我應該一次編寫多少個測試?
一次只編寫一個測試。這樣可以保持你的循環小而專注於一次一個行為。
如果我無法測試所有內容,我應該測試什麼?
專注於關鍵路徑和複雜邏輯。與你的用戶確認哪些行為對你的應用程式最重要。
我應該模擬我自己的類別或模組嗎?
不用。只在系統邊界(如外部 API、資料庫和檔案系統)進行模擬。你自己的程式碼應該透過真實介面進行測試。
在 TDD 中什麼時候應該重構?
只在所有測試通過(處於綠色狀態)時才進行重構。千萬不要在測試失敗時重構。
如何知道我的測試是否是好測試?
好的測試在行為破壞時會壞掉,但在內部重構時能存活。如果重新命名一個內部函數會破壞你的測試,那麼該測試測試的是實作而不是行為。

开发者详情

作者

mattpocock

许可证

MIT

引用

main