csharp-tdd-develop

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

C# TDD Develop

C# TDD 开发

TDD(Test-Driven Development) 워크플로우 조율 스킬. 순서를 강제하고, 실제 작업은 서브에이전트에 위임.
TDD(Test-Driven Development,测试驱动开发)工作流协调技能。强制遵循流程顺序,实际工作委托给子代理执行。

Overview

概述

이 스킬은 워크플로우 조율에 집중합니다:
┌─────────────────────────────────────────────────────────────┐
│  csharp-tdd-develop (Orchestrator)                          │
│  ├── Phase 0: 환경 감지 ──── scripts/test-detector.js       │
│  └── Phase 1: 분석 ───────── 요구사항 → 테스트 시나리오     │
├─────────────────────────────────────────────────────────────┤
│  Sub-agent (Executor)                                        │
│  ├── Phase 2 RED ─────────── 테스트 작성 + dotnet test 실패 │
│  ├── Phase 3 GREEN ───────── 최소 구현 + dotnet test 통과   │
│  └── Phase 4 REFACTOR ────── 코드 정리 + 회귀 방지         │
│                                                             │
│  ※ csharp-best-practices 규칙 참조 가능                    │
│  ※ csharp-test-develop 테스트 패턴 참조 가능               │
└─────────────────────────────────────────────────────────────┘
本技能专注于工作流的协调
┌─────────────────────────────────────────────────────────────┐
│  csharp-tdd-develop (Orchestrator)                          │
│  ├── Phase 0: 环境检测 ──── scripts/test-detector.js       │
│  └── Phase 1: 分析 ───────── 需求 → 测试场景     │
├─────────────────────────────────────────────────────────────┤
│  Sub-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 검증리팩토링 후 테스트 재실행롤백

规则说明违规时
环境检查从.csproj中检测测试环境未安装时进行引导
先写测试必须在编写实现代码前编写测试代码终止流程
确认Red状态测试必须失败才能进入下一阶段终止流程
确认Green状态测试必须通过才能进入重构阶段重复执行
重构验证重构后重新运行测试回滚变更

Workflow

工作流

Phase 0: 환경 확인

阶段0:环境检查

.csproj 파일에서 테스트 환경 자동 감지.
bash
node skills/csharp-tdd-develop/scripts/test-detector.js --detect
정상:
undefined
从.csproj文件自动检测测试环境。
bash
node skills/csharp-tdd-develop/scripts/test-detector.js --detect
正常情况:
undefined

Test Environment

Test Environment

Runner: xUnit ✓ FluentAssertions: YES ✓ Moq: YES ✓ Test Command: dotnet test

**미설치 시:**
Runner: xUnit ✓ FluentAssertions: YES ✓ Moq: YES ✓ Test Command: dotnet test

**未安装时:**

Missing Dependencies

Missing Dependencies

dotnet add package xunit dotnet add package xunit.runner.visualstudio dotnet add package Microsoft.NET.Test.Sdk
→ 설치 안내 후 중단

---
dotnet add package xunit dotnet add package xunit.runner.visualstudio dotnet add package Microsoft.NET.Test.Sdk
→ 输出安装引导后终止流程

---

Phase 1: 분석

阶段1:分析

요구사항을 테스트 시나리오로 변환.
동작:
  1. 사용자 요구사항 파악
  2. 클래스/서비스 구조 설계
  3. 테스트 시나리오 3-5개 도출
  4. 테스트 파일 경로 결정
Output:
markdown
undefined
将需求转换为测试场景。
操作:
  1. 理解用户需求
  2. 设计类/服务结构
  3. 导出3-5个测试场景
  4. 确定测试文件路径
输出:
markdown
undefined

분석 결과

分析结果

대상 클래스

目标类

  • 이름: UserService
  • 경로: src/Services/UserService.cs
  • 타입: Business Service
  • 名称: UserService
  • 路径: src/Services/UserService.cs
  • 类型: 业务服务

테스트 시나리오

测试场景

  1. GetByIdAsync — 유효한 ID로 사용자 반환
  2. GetByIdAsync — 존재하지 않는 ID로 null 반환
  3. CreateAsync — 유효한 데이터로 사용자 생성
  4. CreateAsync — 중복 이메일로 예외 발생
  1. GetByIdAsync — 通过有效ID返回用户
  2. GetByIdAsync — 通过不存在的ID返回null
  3. CreateAsync — 通过有效数据创建用户
  4. CreateAsync — 重复邮箱时抛出异常

테스트 파일

测试文件

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

---
  • 路径: tests/UnitTests/Services/UserServiceTests.cs

---

Phase 2: RED (서브에이전트 위임)

阶段2:RED(委托给子代理)

Task tool로 위임:
Task({
  subagent_type: "general-purpose",
  prompt: `
TDD RED 단계를 수행하세요.
SOLID 원칙, GoF 디자인 패턴, Modern C# 12/13 기능을 적용하세요.
通过Task工具委托:
Task({
  subagent_type: "general-purpose",
  prompt: `
请执行TDD RED阶段。
请应用SOLID原则、GoF设计模式、Modern C# 12/13特性。

대상 클래스

目标类

  • 이름: UserService
  • 경로: src/Services/UserService.cs
  • 名称: UserService
  • 路径: src/Services/UserService.cs

테스트 시나리오

测试场景

  1. GetByIdAsync — 유효한 ID로 사용자 반환
  2. GetByIdAsync — 존재하지 않는 ID로 null 반환
  3. CreateAsync — 유효한 데이터로 사용자 생성
  4. CreateAsync — 중복 이메일로 예외 발생
  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. 테스트 결과 리포트
  1. 创建测试文件: tests/UnitTests/Services/UserServiceTests.cs
  2. 编写上述场景对应的测试用例
  3. 应用csharp-test-develop测试模式(AAA模式、Method_Scenario_ExpectedBehavior命名规范)
  4. 运行测试并确认失败(dotnet test)
  5. 提交测试结果报告

중요

重要提示

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

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

---
  • 禁止编写实现代码(在GREEN阶段执行)
  • 测试必须失败 ` })

**验证(csharp-tdd-develop):**
- 从代理响应中确认测试失败
- 若测试通过则终止流程:"测试已通过,请检查场景。"

---

Phase 3: GREEN (서브에이전트 위임)

阶段3:GREEN(委托给子代理)

Task tool로 위임:
Task({
  subagent_type: "general-purpose",
  prompt: `
TDD GREEN 단계를 수행하세요.
SOLID 원칙, GoF 디자인 패턴, Modern C# 12/13 기능을 적용하세요.
通过Task工具委托:
Task({
  subagent_type: "general-purpose",
  prompt: `
请执行TDD GREEN阶段。
请应用SOLID原则、GoF设计模式、Modern C# 12/13特性。

대상 클래스

目标类

  • 이름: UserService
  • 경로: src/Services/UserService.cs
  • 테스트 파일: tests/UnitTests/Services/UserServiceTests.cs
  • 名称: UserService
  • 路径: src/Services/UserService.cs
  • 测试文件: tests/UnitTests/Services/UserServiceTests.cs

지침

指南

  1. 테스트를 통과하는 최소한의 구현
  2. Over-engineering 금지 (추가 기능, 최적화는 REFACTOR에서)
  3. 테스트 실행하여 통과 확인 (dotnet test)
  4. 테스트 결과 리포트
  1. 编写能通过测试的最小化实现代码
  2. 禁止过度设计(额外功能、优化在REFACTOR阶段进行)
  3. 运行测试并确认通过(dotnet test)
  4. 提交测试结果报告

중요

重要提示

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

**검증 (csharp-tdd-develop):**
- agent 응답에서 테스트 통과 확인
- 실패하면 재시도 요청 (최대 3회)

---
  • 禁止修改测试文件
  • 禁止不必要的抽象 ` })

**验证(csharp-tdd-develop):**
- 从代理响应中确认测试通过
- 若失败则请求重试(最多3次)

---

Phase 4: REFACTOR (서브에이전트 위임)

阶段4:REFACTOR(委托给子代理)

Task tool로 위임:
Task({
  subagent_type: "general-purpose",
  prompt: `
TDD REFACTOR 단계를 수행하세요.
SOLID 원칙, GoF 디자인 패턴, Modern C# 12/13 기능을 적용하세요.
通过Task工具委托:
Task({
  subagent_type: "general-purpose",
  prompt: `
请执行TDD REFACTOR阶段。
请应用SOLID原则、GoF设计模式、Modern C# 12/13特性。

대상 파일

目标文件

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

체크리스트

检查清单

  • SOLID 원칙 적용
  • Modern C# 12 기능 활용
  • 중복 코드 제거
  • 네이밍 개선
  • 应用SOLID原则
  • 运用Modern C# 12特性
  • 移除重复代码
  • 优化命名

지침

指南

  1. 코드 가독성 개선
  2. csharp-best-practices 규칙 적용
  3. 테스트 재실행하여 회귀 없음 확인 (dotnet test)
  4. 개선 사항 + 테스트 결과 리포트
  1. 提升代码可读性
  2. 应用csharp-best-practices规则
  3. 重新运行测试并确认无回归问题(dotnet test)
  4. 提交优化说明 + 测试结果报告

중요

重要提示

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

**검증 (csharp-tdd-develop):**
- agent 응답에서 테스트 통과 확인
- 실패하면 롤백 요청

---
  • 若测试失败则回滚变更 ` })

**验证(csharp-tdd-develop):**
- 从代理响应中确认测试通过
- 若失败则请求回滚

---

현재 전달받은 인자

当前接收的参数

ARGUMENTS: $ARGUMENTS
ARGUMENTS: $ARGUMENTS

실행 지시

执行指令

위 ARGUMENTS가 구현할 클래스/기능 설명입니다. 이 설명을 기반으로 TDD 워크플로우를 시작하세요.
ARGUMENTS가 비어있으면 사용자에게 구현할 클래스/기능을 질문하세요.
호출 예시:
  • /csharp-tdd-develop UserService
    → ARGUMENTS = "UserService"
  • /csharp-tdd-develop 주문 처리 서비스
    → ARGUMENTS = "주문 처리 서비스"

上述ARGUMENTS是待实现的类/功能说明。请基于此说明启动TDD工作流。
若ARGUMENTS为空,请询问用户待实现的类/功能。
调用示例:
  • /csharp-tdd-develop UserService
    → ARGUMENTS = "UserService"
  • /csharp-tdd-develop 订单处理服务
    → ARGUMENTS = "订单处理服务"

실행 예시

执行示例

요청

请求

"TDD로 UserService 만들어줘"
"用TDD创建UserService"

실행 흐름

执行流程

markdown
undefined
markdown
undefined

Phase 0: 환경 확인

Phase 0: 环境检查

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

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

Phase 1: 분석

Phase 1: 分析

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

  • 类: UserService(业务服务)
  • 导出4个场景

Phase 2: RED

Phase 2: RED

→ 서브에이전트 호출 ← 테스트 파일 생성, 실패 확인됨 ❌

→ 调用子代理 ← 生成测试文件,确认失败 ❌

Phase 3: GREEN

Phase 3: GREEN

→ 서브에이전트 호출 ← 서비스 구현, 테스트 통과 ✅

→ 调用子代理 ← 完成服务实现,测试通过 ✅

Phase 4: REFACTOR

Phase 4: REFACTOR

→ 서브에이전트 호출 ← 코드 정리 완료, 테스트 유지 ✅

→ 调用子代理 ← 完成代码整理,测试保持通过 ✅

TDD 사이클 완료!

TDD周期完成!

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

---
  • 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

源码位置测试位置
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에서 실패롤백 요청

情况处理方式
测试运行器未安装输出安装命令后终止流程
RED阶段测试通过终止流程并请求检查场景
GREEN阶段持续失败最多重试3次后向用户请求帮助
REFACTOR阶段测试失败请求回滚变更

위임 구조

委托结构

csharp-tdd-develop (Orchestrator)
    └── general-purpose sub-agent
            └── 참조 가능 리소스:
                  ├── csharp-best-practices/rules/ ← 12개 규칙 (필요시 Read)
                  └── csharp-test-develop/references/
                        └── csharp-test-patterns.md ← 테스트 패턴 (필요시 Read)

csharp-tdd-develop (Orchestrator)
    └── general-purpose sub-agent
            └── 可参考资源:
                  ├── csharp-best-practices/rules/ ← 12条规则(按需读取)
                  └── csharp-test-develop/references/
                        └── csharp-test-patterns.md ← 测试模式(按需读取)

Resources

资源

scripts/

scripts/

  • test-detector.js
    : .csproj 기반 테스트 환경 감지
    • --detect
      : 테스트 환경만 확인
  • test-detector.js
    : 基于.csproj检测测试环境
    • --detect
      : 仅检查测试环境