🎯

csharp-tdd-develop

🎯Skill

from jeongheonk/c-sharp-custom-marketplace

VibeIndex|
What it does

1. 테스트 시나리오에 맞는 테스트 코드 작성 2. 구현 코드 없이 테스트 실행 3. 테스트 실패 확인 ` }) ``` --- ### Phase 3: GREEN (csharp-expert 위임) **Task tool로 위임:** ``` Task({

📦

Part of

jeongheonk/c-sharp-custom-marketplace(6 items)

csharp-tdd-develop

Installation

Node.jsRun Node.js server
node skills/csharp-tdd-develop/scripts/test-detector.js --detect
📖 Extracted from docs: jeongheonk/c-sharp-custom-marketplace
3Installs
-
AddedFeb 4, 2026

Skill Details

SKILL.md

TDD 기반 C#/.NET 개발. 테스트 먼저 작성 후 구현. Red-Green-Refactor 순서 강제. csharp-expert agent에 위임.

Overview

# C# TDD Develop

TDD(Test-Driven Development) 워크플로우 조율 스킬. 순서를 강제하고, 실제 작업은 csharp-expert agent에 위임.

Overview

이 스킬은 워크플로우 조율에 집중합니다:

```

┌─────────────────────────────────────────────────────────────┐

│ csharp-tdd-develop (Orchestrator) │

│ ├── Phase 0: 환경 감지 ──── scripts/test-detector.js │

│ └── Phase 1: 분석 ───────── 요구사항 → 테스트 시나리오 │

├─────────────────────────────────────────────────────────────┤

│ csharp-expert agent (Executor) │

│ ├── Phase 2 RED ─────────── 테스트 작성 + dotnet test 실패 │

│ ├── Phase 3 GREEN ───────── 최소 구현 + dotnet test 통과 │

│ └── Phase 4 REFACTOR ────── 코드 정리 + 회귀 방지 │

│ │

│ ※ csharp-best-practices 규칙 자동 적용 │

│ ※ csharp-test-develop 테스트 패턴 참조 │

└─────────────────────────────────────────────────────────────┘

```

강제 규칙

| 규칙 | 설명 | 위반 시 |

|------|------|---------|

| 환경 확인 | .csproj에서 테스트 환경 감지 | 미설치 시 안내 |

| 테스트 먼저 | 구현 코드 작성 전 테스트 코드 필수 | 중단 |

| Red 확인 | 테스트가 실패해야 다음 단계 진행 | 중단 |

| Green 확인 | 테스트 통과해야 리팩토링 진행 | 반복 |

| Refactor 검증 | 리팩토링 후 테스트 재실행 | 롤백 |

---

Workflow

Phase 0: 환경 확인

.csproj 파일에서 테스트 환경 자동 감지.

```bash

node skills/csharp-tdd-develop/scripts/test-detector.js --detect

```

정상:

```

Test Environment

Runner: xUnit ✓

FluentAssertions: YES ✓

Moq: YES ✓

Test Command: dotnet test

```

미설치 시:

```

Missing Dependencies

dotnet add package xunit

dotnet add package xunit.runner.visualstudio

dotnet add package Microsoft.NET.Test.Sdk

```

→ 설치 안내 후 중단

---

Phase 1: 분석

요구사항을 테스트 시나리오로 변환.

동작:

  1. 사용자 요구사항 파악
  2. 클래스/서비스 구조 설계
  3. 테스트 시나리오 3-5개 도출
  4. 테스트 파일 경로 결정

Output:

```markdown

분석 결과

대상 클래스

  • 이름: UserService
  • 경로: src/Services/UserService.cs
  • 타입: Business Service

테스트 시나리오

  1. GetByIdAsync — 유효한 ID로 사용자 반환
  2. GetByIdAsync — 존재하지 않는 ID로 null 반환
  3. CreateAsync — 유효한 데이터로 사용자 생성
  4. CreateAsync — 중복 이메일로 예외 발생

테스트 파일

  • 경로: tests/UnitTests/Services/UserServiceTests.cs

```

---

Phase 2: RED (csharp-expert 위임)

Task tool로 위임:

```

Task({

subagent_type: "csharp-expert",

prompt: `

TDD RED 단계를 수행하세요.

대상 클래스

  • 이름: UserService
  • 경로: src/Services/UserService.cs

테스트 시나리오

  1. GetByIdAsync — 유효한 ID로 사용자 반환
  2. GetByIdAsync — 존재하지 않는 ID로 null 반환
  3. CreateAsync — 유효한 데이터로 사용자 생성
  4. CreateAsync — 중복 이메일로 예외 발생

지침

  1. 테스트 파일 생성: tests/UnitTests/Services/UserServiceTests.cs
  2. 위 시나리오에 대한 테스트 케이스 작성
  3. csharp-test-develop 테스트 패턴 적용 (AAA 패턴, Method_Scenario_ExpectedBehavior 네이밍)
  4. 테스트 실행하여 실패 확인 (dotnet test)
  5. 테스트 결과 리포트

중요

  • 구현 코드 작성 금지 (GREEN 단계에서 수행)
  • 테스트가 반드시 실패해야 함

`

})

```

검증 (csharp-tdd-develop):

  • agent 응답에서 테스트 실패 확인
  • 통과하면 중단: "테스트가 이미 통과합니다. 시나리오를 검토하세요."

---

Phase 3: GREEN (csharp-expert 위임)

Task tool로 위임:

```

Task({

subagent_type: "csharp-expert",

prompt: `

TDD GREEN 단계를 수행하세요.

대상 클래스

  • 이름: UserService
  • 경로: src/Services/UserService.cs
  • 테스트 파일: tests/UnitTests/Services/UserServiceTests.cs

지침

  1. 테스트를 통과하는 최소한의 구현
  2. Over-engineering 금지 (추가 기능, 최적화는 REFACTOR에서)
  3. 테스트 실행하여 통과 확인 (dotnet test)
  4. 테스트 결과 리포트

중요

  • 테스트 파일 수정 금지
  • 불필요한 추상화 금지

`

})

```

검증 (csharp-tdd-develop):

  • agent 응답에서 테스트 통과 확인
  • 실패하면 재시도 요청 (최대 3회)

---

Phase 4: REFACTOR (csharp-expert 위임)

Task tool로 위임:

```

Task({

subagent_type: "csharp-expert",

prompt: `

TDD REFACTOR 단계를 수행하세요.

대상 파일

  • 구현: src/Services/UserService.cs
  • 테스트: tests/UnitTests/Services/UserServiceTests.cs

체크리스트

  • [ ] SOLID 원칙 적용
  • [ ] Modern C# 12 기능 활용
  • [ ] 중복 코드 제거
  • [ ] 네이밍 개선

지침

  1. 코드 가독성 개선
  2. csharp-best-practices 규칙 적용
  3. 테스트 재실행하여 회귀 없음 확인 (dotnet test)
  4. 개선 사항 + 테스트 결과 리포트

중요

  • 테스트가 실패하면 변경 사항 롤백

`

})

```

검증 (csharp-tdd-develop):

  • agent 응답에서 테스트 통과 확인
  • 실패하면 롤백 요청

---

현재 전달받은 인자

ARGUMENTS: $ARGUMENTS

실행 지시

위 ARGUMENTS가 구현할 클래스/기능 설명입니다. 이 설명을 기반으로 TDD 워크플로우를 시작하세요.

ARGUMENTS가 비어있으면 사용자에게 구현할 클래스/기능을 질문하세요.

호출 예시:

  • /csharp-tdd-develop UserService → ARGUMENTS = "UserService"
  • /csharp-tdd-develop 주문 처리 서비스 → ARGUMENTS = "주문 처리 서비스"

---

실행 예시

요청

"TDD로 UserService 만들어줘"

실행 흐름

```markdown

Phase 0: 환경 확인

Runner: xUnit ✓ | FluentAssertions: YES ✓ | Moq: YES ✓

---

Phase 1: 분석

  • 클래스: UserService (Business Service)
  • 시나리오 4개 도출

---

Phase 2: RED

→ csharp-expert agent 호출

← 테스트 파일 생성, 실패 확인됨 ❌

---

Phase 3: GREEN

→ csharp-expert agent 호출

← 서비스 구현, 테스트 통과 ✅

---

Phase 4: REFACTOR

→ csharp-expert agent 호출

← 코드 정리 완료, 테스트 유지 ✅

---

TDD 사이클 완료!

  • src/Services/UserService.cs
  • tests/UnitTests/Services/UserServiceTests.cs

```

---

테스트 파일 경로 규칙

| 소스 위치 | 테스트 위치 |

|-----------|------------|

| src/Services/UserService.cs | tests/UnitTests/Services/UserServiceTests.cs |

| src/ViewModels/MainViewModel.cs | tests/UnitTests/ViewModels/MainViewModelTests.cs |

| src/Repositories/UserRepository.cs | tests/IntegrationTests/Repositories/UserRepositoryTests.cs |

---

Error Handling

| 상황 | 처리 |

|------|------|

| 테스트 러너 미설치 | 설치 명령어 출력 후 중단 |

| RED에서 테스트 통과 | 중단 + 시나리오 검토 요청 |

| GREEN에서 계속 실패 | 최대 3회 재시도 후 사용자에게 도움 요청 |

| REFACTOR에서 실패 | 롤백 요청 |

---

위임 구조

```

csharp-tdd-develop (Orchestrator)

└── csharp-expert agent

└── skills:

├── csharp-best-practices ← 12개 규칙 자동 적용

│ ├── rules/cs12-primary-constructor.md

│ ├── rules/cs12-collection-expression.md

│ └── ...

└── csharp-test-develop ← 테스트 패턴 참조

└── references/csharp-test-patterns.md

```

---

Resources

scripts/

  • test-detector.js: .csproj 기반 테스트 환경 감지

- --detect: 테스트 환경만 확인