tdd-workflow

Solid

TDD 워크플로우 가이드. Red-Green-Refactor 철학, pytest, moto 모킹, 테스트 패턴.

Testing & QA 364 stars 68 forks Updated today MIT

Install

View on GitHub

Quality Score: 89/100

Stars 20%
85
Recency 20%
100
Frontmatter 20%
70
Documentation 15%
100
Issue Health 10%
80
License 10%
100
Description 5%
100

Skill Content

# TDD 워크플로우 테스트 주도 개발 가이드입니다. ## 철학: The Iron Law ``` NO PRODUCTION CODE WITHOUT A FAILING TEST FIRST ``` 테스트 전에 코드를 작성했다면? **삭제하고 다시 시작.** - "참고용으로 보관" 금지 - "적용하면서 테스트 작성" 금지 - 테스트로부터 새로 구현 ## Red-Green-Refactor ### RED - 실패하는 테스트 작성 하나의 행위만 테스트하는 최소한의 테스트 작성. ```python def test_find_unused_volumes_returns_unattached_volumes(): """미연결 볼륨만 반환하는지 테스트""" # Arrange volumes = [ {"VolumeId": "vol-1", "Attachments": []}, # 미연결 {"VolumeId": "vol-2", "Attachments": [{"InstanceId": "i-1"}]}, # 연결됨 ] # Act result = find_unused_volumes(volumes) # Assert assert len(result) == 1 assert result[0]["VolumeId"] == "vol-1" ``` **요구사항:** - 하나의 행위만 테스트 - 명확한 이름 (무엇을_어떤상황에서_어떤결과) - 실제 코드 테스트 (가능하면 mock 최소화) ### Verify RED - 반드시 실패 확인 ```bash pytest tests/plugins/ec2/test_ebs_audit.py::test_find_unused_volumes -v ``` 확인: - 테스트가 **실패**하는가? (에러가 아닌 실패) - 실패 이유가 **기능 미구현** 때문인가? (오타 아님) ### GREEN - 최소한의 코드 테스트를 통과시키는 **가장 단순한** 코드 작성. ```python def find_unused_volumes(volumes: list[dict]) -> list[dict]: return [v for v in volumes if not v.get("Attachments")] ``` **금지 사항:** - 미래를 위한 확장성 추가 - 요청받지 않은 기능 추가 - "개선"을 위한 리팩토링 ### Verify GREEN - 통과 확인 ```bash pytest tests/plugins/ec2/test_ebs_audit.py -v ``` 확인: - 테스트 통과 - 다른 테스트도 통과 - 경고/에러 없음 ### REFACTOR - 코드 개선 GREEN 이후에만: - 중복 제거 - 이름 개선 - 헬퍼 추출 **테스트는 항상 통과 상태 유지.** --- ## 프로젝트 테스트 구조 ``` tests/ ├── conftest.py # 공유 fixtures ├── cli/ ...

Details

Author
majiayu000
Repository
majiayu000/claude-skill-registry
Created
5 months ago
Last Updated
today
Language
HTML
License
MIT

Integrates with

Similar Skills

Semantically similar based on skill content — not just same category