TDD 개발 워크플로우 규칙
목적
- •테스트가 설계를 이끌도록 한다
- •구현보다 요구사항을 먼저 명확히 한다
- •불필요한 코드 작성을 방지한다
기본 원칙
- •테스트 없는 구현은 허용하지 않는다
- •항상 실패하는 테스트부터 시작한다
- •테스트를 통과시키는 최소한의 코드만 작성한다
- •테스트 통과 후에만 리팩토링을 수행한다
표준 작업 흐름
- •요구사항 분해
- •Given / When / Then 기반 시나리오로 분해한다
- •이 단계에서는 코드 작성을 금지한다
- •테스트 케이스 목록화
- •테스트 이름 목록을 먼저 작성한다
- •아직 구현되지 않은 기능임을 명시한다
- •실패하는 테스트 작성
- •첫 번째 테스트만 작성한다
- •해당 테스트는 반드시 실패해야 한다
- •최소 구현
- •테스트를 통과시키는 최소한의 구현만 작성한다
- •추상화 및 최적화는 금지한다
- •리팩토링
- •중복 제거 및 가독성 개선만 허용한다
- •동작 변경은 금지한다
E2E 기반 TDD 규칙
- •사용자 기능 변경은 E2E 테스트부터 시작한다
- •내부 로직은 Unit Test로 분리한다
- •E2E 테스트는 흐름을 검증한다
- •Unit Test는 로직을 검증한다
테스트 작성 가이드
- •하나의 테스트는 하나의 요구사항만 검증한다
- •실패 원인이 명확하지 않은 테스트 작성은 금지한다
- •테스트 설명만 보고 요구사항을 이해할 수 있어야 한다
Cursor 사용 지침
- •“테스트 먼저 작성” 요청 시 구현 코드를 제안하지 않는다
- •TDD 흐름 중에는 테스트 통과 이후에만 구현 개선을 제안한다
- •테스트 케이스 정의 단계에서는 코드 출력을 최소화한다