2026-03-146 phút đọcVI
TDD với Claude Code
English title: TDD with Claude Code
Bài 13 trong chuỗi 20 bài về Claude Code. TDD = viết test trước, code sau — RED (test fail) → GREEN (code tối thiểu pass) → REFACTOR. Bài này nhắc lại chu kỳ, coverage và chất lượng test, và cách tích hợp TDD vào workflow Claude Code (command, skill, rule).
Mở đầu: Viết test trước, code sau — trong workflow Claude Code
Agent thường "muốn" implement trước. Instruction rõ: "viết test trước; không implement cho đến khi test đã viết và đang fail." Command /tdd "Add login validation" (hoặc tương đương) load skill TDD → agent viết test → run (red) → implement → run (green) → refactor. Một lệnh, cả quy trình chạy đúng thứ tự.
1. Đi sâu: RED-GREEN-REFACTOR và coverage
RED-GREEN-REFACTOR: (1) Viết test fail. (2) Implement tối thiểu để test pass. (3) Refactor giữ pass. Chu kỳ ngắn; vài test case → implement → refactor; lặp. Agent cần instruction rõ để không nhảy cóc sang implement.
Coverage: Chỉ báo; coverage cao chưa đủ (test có thể trivial). Kết hợp review test (boundary, error path). Rule/skill: "test phải có assertion rõ, không chỉ pass." Sau phase TDD chạy coverage; dưới ngưỡng thì không compact (hoặc không merge).
2. Khái niệm
- TDD skill: Steps = viết test → red → implement → green → refactor. Command /tdd gọi skill và truyền scope (vd. tên module).
- Rule: "Khi implement feature mới, bắt đầu bằng test." Default TDD cho code mới; exception: fix bug có thể test-after rồi bổ sung test.
- Legacy: Code cũ không có test — chấp nhận implement trước khi có thể, sau đó bổ sung test; không bắt TDD cứng cho mọi dòng legacy.
3. Workflow
- Gõ
/tdd "UserService"(hoặc tương đương). Agent load skill TDD, viết test cho scope đó, chạy (red), implement, chạy (green), refactor. - Chạy coverage; đảm bảo trên ngưỡng. Review test list (edge case, error path).
- Verify (bài 12) trước khi compact/commit. Bài 14 nói bảo mật config và secret.
Bài tiếp: Bảo mật config và secret (bài 14).