Loading...
Loading...
C#/.NET 테스트 코드 작성. 기존 코드에 대한 단위/통합 테스트를 xUnit, Moq, FluentAssertions 기반으로 생성. 서브에이전트에 위임.
npx skill4agent add jeongheonk/c-sharp-custom-marketplace csharp-test-develop┌─────────────────────────────────────────────────────────────┐
│ csharp-test-develop (Orchestrator) │
│ ├── Phase 0: 환경 감지 ──── test-detector.js 재사용 │
│ ├── Phase 1: 분석 ───────── 대상 코드 → 테스트 시나리오 │
│ └── Phase 2: 검증 ───────── dotnet test 통과 확인 │
├─────────────────────────────────────────────────────────────┤
│ Sub-agent (Executor) │
│ └── 테스트 코드 작성 ────── references/csharp-test-patterns│
│ │
│ ※ csharp-best-practices 규칙 참조 가능 │
└─────────────────────────────────────────────────────────────┘| 구분 | csharp-tdd-develop | csharp-test-develop |
|---|---|---|
| 목적 | 새 기능 TDD 개발 | 기존 코드에 테스트 추가 |
| 워크플로우 | Red-Green-Refactor | 분석 → 테스트 작성 → 검증 |
| 구현 코드 | 테스트 후 작성 | 이미 존재 |
| 시점 | 개발 시작 | 개발 후 / 레거시 코드 |
# csharp-tdd-develop의 test-detector.js 재사용
node skills/csharp-tdd-develop/scripts/test-detector.js --detect## 분석 결과
### 대상 클래스
- 이름: OrderService
- 경로: src/Services/OrderService.cs
- 의존성: IOrderRepository, IPaymentGateway, ILogger<OrderService>
### 테스트 시나리오
1. CreateOrderAsync — 유효한 주문 생성 성공
2. CreateOrderAsync — 재고 부족 시 예외 발생
3. CreateOrderAsync — 결제 실패 시 롤백
4. GetOrderByIdAsync — 존재하는 주문 반환
5. GetOrderByIdAsync — 존재하지 않는 주문 null 반환
6. CancelOrderAsync — 이미 취소된 주문 예외
### 테스트 파일
- 경로: tests/UnitTests/Services/OrderServiceTests.csTask({
subagent_type: "general-purpose",
prompt: `
기존 코드에 대한 단위 테스트를 작성하세요.
SOLID 원칙, GoF 디자인 패턴, Modern C# 12/13 기능을 적용하세요.
## 대상
- 클래스: OrderService
- 경로: src/Services/OrderService.cs
- 테스트 파일: tests/UnitTests/Services/OrderServiceTests.cs
## 테스트 시나리오
1. CreateOrderAsync — 유효한 주문 생성 성공
2. CreateOrderAsync — 재고 부족 시 예외 발생
...
## 테스트 패턴 (필수 적용)
- AAA Pattern (Arrange-Act-Assert)
- 네이밍: Method_Scenario_ExpectedBehavior
- Moq로 의존성 Mock
- FluentAssertions 사용 (설치된 경우)
- xUnit Theory/InlineData (매개변수화 테스트)
## 지침
1. references/csharp-test-patterns.md 패턴 적용
2. 테스트 실행하여 **통과 확인** (dotnet test)
3. 테스트 결과 리포트
`
})/csharp-test-develop src/Services/UserService.cs/csharp-test-develop OrderService## Phase 0: 환경 확인
Runner: xUnit ✓ | FluentAssertions: YES ✓ | Moq: YES ✓
---
## Phase 1: 분석
- 클래스: OrderService
- public 메서드 3개
- 의존성 3개 (모두 인터페이스)
- 시나리오 6개 도출
---
## Phase 2: 테스트 작성
→ 서브에이전트 호출
← 테스트 파일 생성, 모든 테스트 통과 ✅
---
## 완료!
- tests/UnitTests/Services/OrderServiceTests.cs (6 tests)IntegrationTestsUnitTests| 소스 위치 | 테스트 위치 |
|---|---|
| |
| |
| |
| 상황 | 처리 |
|---|---|
| 테스트 러너 미설치 | 설치 명령어 출력 후 중단 |
| 대상 파일 미발견 | 사용자에게 경로 확인 요청 |
| 테스트 실패 | 최대 3회 수정 시도 후 사용자에게 도움 요청 |
csharp-test-develop (Orchestrator)
│
└── general-purpose sub-agent
│
└── 참조 가능 리소스:
├── csharp-best-practices/rules/ ← C# 12 규칙 (필요시 Read)
└── references/
└── csharp-test-patterns.md ← 테스트 패턴 (필요시 Read)csharp-test-patterns.md