tdd-discipline

0
0
Source

Test-Driven Development methodology. Use when implementing features or fixing bugs. Write the test first, watch it fail, write minimal code to pass, then refactor. Prevents untested code from shipping.

Install

mkdir -p .claude/skills/tdd-discipline && curl -L -o skill.zip "https://mcp.directory/api/skills/download/8197" && unzip -o skill.zip -d .claude/skills/tdd-discipline && rm skill.zip

Installs to .claude/skills/tdd-discipline

About this skill

TDD Discipline

핵심 사이클

RED → GREEN → REFACTOR → 반복

RED: 실패하는 테스트 작성

  • 하나의 동작만 테스트
  • 명확한 이름 ("rejects empty email" ✅, "test1" ❌)
  • 실제 코드 사용 (mock 최소화)

검증: 실패 확인 (필수! 건너뛰기 금지)

npm test path/to/test.test.ts
  • 테스트가 실패하는가? (에러가 아닌 실패)
  • 실패 메시지가 예상대로인가?
  • 기능 미구현 때문에 실패하는가? (오타 아닌지 확인)

GREEN: 최소한의 코드

  • 테스트를 통과하는 가장 간단한 코드
  • 기능 추가 금지, 리팩토링 금지
  • YAGNI (You Ain't Gonna Need It)

REFACTOR: 정리

  • 중복 제거, 이름 개선, 헬퍼 추출
  • 테스트는 계속 GREEN 유지
  • 동작 추가 금지

위반 시 규칙

테스트 전에 코드 작성했으면? → 삭제. 처음부터.
  • "참고용으로 남기자" ❌
  • "테스트 쓰면서 적용하자" ❌
  • "보지도 말자" ✅

적용 시점

항상:

  • 새 기능 구현
  • 버그 수정 (버그 재현 테스트 먼저!)
  • 동작 변경

예외 (주인님 판단):

  • 일회성 프로토타입
  • 설정 파일
  • 생성된 코드

흔한 합리화

핑계현실
"너무 간단해서 테스트 불필요"간단한 코드도 깨짐. 테스트 30초
"나중에 테스트 쓸게"나중 = 즉시 통과 = 아무것도 증명 못함
"TDD가 느려"TDD가 디버깅보다 빠름
"수동으로 테스트했어"수동 = 기록 없음, 재실행 불가
"X시간 작업 삭제가 아까워"매몰비용. 검증 안 된 코드가 진짜 낭비

버그 수정 시 TDD

  1. 버그 재현하는 테스트 작성
  2. RED 확인 (테스트가 버그를 잡는지)
  3. 수정 코드 작성
  4. GREEN 확인
  5. 회귀 테스트로 영구 보존

You might also like

flutter-development

aj-geddes

Build beautiful cross-platform mobile apps with Flutter and Dart. Covers widgets, state management with Provider/BLoC, navigation, API integration, and material design.

9521,094

drawio-diagrams-enhanced

jgtolentino

Create professional draw.io (diagrams.net) diagrams in XML format (.drawio files) with integrated PMP/PMBOK methodologies, extensive visual asset libraries, and industry-standard professional templates. Use this skill when users ask to create flowcharts, swimlane diagrams, cross-functional flowcharts, org charts, network diagrams, UML diagrams, BPMN, project management diagrams (WBS, Gantt, PERT, RACI), risk matrices, stakeholder maps, or any other visual diagram in draw.io format. This skill includes access to custom shape libraries for icons, clipart, and professional symbols.

846846

ui-ux-pro-max

nextlevelbuilder

"UI/UX design intelligence. 50 styles, 21 palettes, 50 font pairings, 20 charts, 8 stacks (React, Next.js, Vue, Svelte, SwiftUI, React Native, Flutter, Tailwind). Actions: plan, build, create, design, implement, review, fix, improve, optimize, enhance, refactor, check UI/UX code. Projects: website, landing page, dashboard, admin panel, e-commerce, SaaS, portfolio, blog, mobile app, .html, .tsx, .vue, .svelte. Elements: button, modal, navbar, sidebar, card, table, form, chart. Styles: glassmorphism, claymorphism, minimalism, brutalism, neumorphism, bento grid, dark mode, responsive, skeuomorphism, flat design. Topics: color palette, accessibility, animation, layout, typography, font pairing, spacing, hover, shadow, gradient."

571699

godot

bfollington

This skill should be used when working on Godot Engine projects. It provides specialized knowledge of Godot's file formats (.gd, .tscn, .tres), architecture patterns (component-based, signal-driven, resource-based), common pitfalls, validation tools, code templates, and CLI workflows. The `godot` command is available for running the game, validating scripts, importing resources, and exporting builds. Use this skill for tasks involving Godot game development, debugging scene/resource files, implementing game systems, or creating new Godot components.

548492

nano-banana-pro

garg-aayush

Generate and edit images using Google's Nano Banana Pro (Gemini 3 Pro Image) API. Use when the user asks to generate, create, edit, modify, change, alter, or update images. Also use when user references an existing image file and asks to modify it in any way (e.g., "modify this image", "change the background", "replace X with Y"). Supports both text-to-image generation and image-to-image editing with configurable resolution (1K default, 2K, or 4K for high resolution). DO NOT read the image file first - use this skill directly with the --input-image parameter.

673466

fastapi-templates

wshobson

Create production-ready FastAPI projects with async patterns, dependency injection, and comprehensive error handling. Use when building new FastAPI applications or setting up backend API projects.

514280

Stay ahead of the MCP ecosystem

Get weekly updates on new skills and servers.