csharp-tdd-develop
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseC# 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正常情况:
undefinedTest 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:分析
요구사항을 테스트 시나리오로 변환.
동작:
- 사용자 요구사항 파악
- 클래스/서비스 구조 설계
- 테스트 시나리오 3-5개 도출
- 테스트 파일 경로 결정
Output:
markdown
undefined将需求转换为测试场景。
操作:
- 理解用户需求
- 设计类/服务结构
- 导出3-5个测试场景
- 确定测试文件路径
输出:
markdown
undefined분석 결과
分析结果
대상 클래스
目标类
- 이름: UserService
- 경로: src/Services/UserService.cs
- 타입: Business Service
- 名称: UserService
- 路径: src/Services/UserService.cs
- 类型: 业务服务
테스트 시나리오
测试场景
- GetByIdAsync — 유효한 ID로 사용자 반환
- GetByIdAsync — 존재하지 않는 ID로 null 반환
- CreateAsync — 유효한 데이터로 사용자 생성
- CreateAsync — 중복 이메일로 예외 발생
- GetByIdAsync — 通过有效ID返回用户
- GetByIdAsync — 通过不存在的ID返回null
- CreateAsync — 通过有效数据创建用户
- 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
테스트 시나리오
测试场景
- GetByIdAsync — 유효한 ID로 사용자 반환
- GetByIdAsync — 존재하지 않는 ID로 null 반환
- CreateAsync — 유효한 데이터로 사용자 생성
- CreateAsync — 중복 이메일로 예외 발생
- GetByIdAsync — 通过有效ID返回用户
- GetByIdAsync — 通过不存在的ID返回null
- CreateAsync — 通过有效数据创建用户
- CreateAsync — 重复邮箱时抛出异常
지침
指南
- 테스트 파일 생성: tests/UnitTests/Services/UserServiceTests.cs
- 위 시나리오에 대한 테스트 케이스 작성
- csharp-test-develop 테스트 패턴 적용 (AAA 패턴, Method_Scenario_ExpectedBehavior 네이밍)
- 테스트 실행하여 실패 확인 (dotnet test)
- 테스트 결과 리포트
- 创建测试文件: tests/UnitTests/Services/UserServiceTests.cs
- 编写上述场景对应的测试用例
- 应用csharp-test-develop测试模式(AAA模式、Method_Scenario_ExpectedBehavior命名规范)
- 运行测试并确认失败(dotnet test)
- 提交测试结果报告
중요
重要提示
- 구현 코드 작성 금지 (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
지침
指南
- 테스트를 통과하는 최소한의 구현
- Over-engineering 금지 (추가 기능, 최적화는 REFACTOR에서)
- 테스트 실행하여 통과 확인 (dotnet test)
- 테스트 결과 리포트
- 编写能通过测试的最小化实现代码
- 禁止过度设计(额外功能、优化在REFACTOR阶段进行)
- 运行测试并确认通过(dotnet test)
- 提交测试结果报告
중요
重要提示
- 테스트 파일 수정 금지
- 불필요한 추상화 금지 ` })
**검증 (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特性
- 移除重复代码
- 优化命名
지침
指南
- 코드 가독성 개선
- csharp-best-practices 규칙 적용
- 테스트 재실행하여 회귀 없음 확인 (dotnet test)
- 개선 사항 + 테스트 결과 리포트
- 提升代码可读性
- 应用csharp-best-practices规则
- 重新运行测试并确认无回归问题(dotnet test)
- 提交优化说明 + 测试结果报告
중요
重要提示
- 테스트가 실패하면 변경 사항 롤백 ` })
**검증 (csharp-tdd-develop):**
- agent 응답에서 테스트 통과 확인
- 실패하면 롤백 요청
---- 若测试失败则回滚变更 ` })
**验证(csharp-tdd-develop):**
- 从代理响应中确认测试通过
- 若失败则请求回滚
---현재 전달받은 인자
当前接收的参数
ARGUMENTS: $ARGUMENTS
ARGUMENTS: $ARGUMENTS
실행 지시
执行指令
위 ARGUMENTS가 구현할 클래스/기능 설명입니다. 이 설명을 기반으로 TDD 워크플로우를 시작하세요.
ARGUMENTS가 비어있으면 사용자에게 구현할 클래스/기능을 질문하세요.
호출 예시:
- → ARGUMENTS = "UserService"
/csharp-tdd-develop UserService - → ARGUMENTS = "주문 처리 서비스"
/csharp-tdd-develop 주문 처리 서비스
上述ARGUMENTS是待实现的类/功能说明。请基于此说明启动TDD工作流。
若ARGUMENTS为空,请询问用户待实现的类/功能。
调用示例:
- → ARGUMENTS = "UserService"
/csharp-tdd-develop UserService - → ARGUMENTS = "订单处理服务"
/csharp-tdd-develop 订单处理服务
실행 예시
执行示例
요청
请求
"TDD로 UserService 만들어줘"
"用TDD创建UserService"
실행 흐름
执行流程
markdown
undefinedmarkdown
undefinedPhase 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
---테스트 파일 경로 규칙
测试文件路径规则
| 소스 위치 | 테스트 위치 |
|---|---|
| |
| |
| |
| 源码位置 | 测试位置 |
|---|---|
| |
| |
| |
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/
- : .csproj 기반 테스트 환경 감지
test-detector.js- : 테스트 환경만 확인
--detect
- : 基于.csproj检测测试环境
test-detector.js- : 仅检查测试环境
--detect