csharp-test-develop

C#/.NET 테스트 코드 작성. 기존 코드에 대한 단위/통합 테스트를 xUnit, Moq, FluentAssertions 기반으로 생성. 서브에이전트에 위임.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "csharp-test-develop" with this command: npx skills add jeongheonk/c-sharp-custom-marketplace/jeongheonk-c-sharp-custom-marketplace-csharp-test-develop

C# Test Develop

기존 C# 코드에 대한 테스트 코드를 작성하는 스킬. TDD 워크플로우 없이 구현된 코드를 분석하고 테스트를 생성합니다.

Overview

┌─────────────────────────────────────────────────────────────┐
│  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-tdd-developcsharp-test-develop
목적새 기능 TDD 개발기존 코드에 테스트 추가
워크플로우Red-Green-Refactor분석 → 테스트 작성 → 검증
구현 코드테스트 후 작성이미 존재
시점개발 시작개발 후 / 레거시 코드

Workflow

Phase 0: 환경 확인

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

# csharp-tdd-develop의 test-detector.js 재사용
node skills/csharp-tdd-develop/scripts/test-detector.js --detect

미설치 시 필요한 패키지 안내 후 중단.


Phase 1: 분석

대상 코드를 읽고 테스트 시나리오를 도출합니다.

동작:

  1. 대상 파일/클래스 읽기
  2. public 메서드 목록 추출
  3. 의존성 분석 (DI 인터페이스)
  4. 테스트 시나리오 도출 (정상/예외/엣지 케이스)
  5. 테스트 파일 경로 결정

Output:

## 분석 결과

### 대상 클래스
- 이름: 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.cs

Phase 2: 테스트 작성 (서브에이전트 위임)

Task tool로 위임:

Task({
  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. 테스트 결과 리포트
`
})

Phase 3: 검증

  • agent 응답에서 테스트 통과 확인
  • 실패 시 수정 요청 (최대 3회)
  • 커버리지 리포트 출력 (coverlet 설치 시)

현재 전달받은 인자

ARGUMENTS: $ARGUMENTS

실행 지시

위 ARGUMENTS가 테스트를 작성할 대상 클래스/파일 설명입니다.

ARGUMENTS가 비어있으면 사용자에게 테스트 대상을 질문하세요.

호출 예시:

  • /csharp-test-develop src/Services/UserService.cs → 해당 파일 테스트 작성
  • /csharp-test-develop OrderService → OrderService 클래스 찾아서 테스트 작성

실행 예시

요청

"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)

테스트 파일 경로 규칙

경로 결정 기준: Repository/Database 접근 코드 → IntegrationTests, 나머지 → UnitTests

소스 위치테스트 위치
src/Services/UserService.cstests/UnitTests/Services/UserServiceTests.cs
src/ViewModels/MainViewModel.cstests/UnitTests/ViewModels/MainViewModelTests.cs
src/Repositories/UserRepository.cstests/IntegrationTests/Repositories/UserRepositoryTests.cs

Error Handling

상황처리
테스트 러너 미설치설치 명령어 출력 후 중단
대상 파일 미발견사용자에게 경로 확인 요청
테스트 실패최대 3회 수정 시도 후 사용자에게 도움 요청

위임 구조

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

Resources

references/

  • csharp-test-patterns.md: C# 테스트 패턴 가이드 (AAA, Moq, FluentAssertions 등)

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

csharp-tdd-develop

No summary provided by upstream source.

Repository SourceNeeds Review
General

wpf-mvvm-generator

No summary provided by upstream source.

Repository SourceNeeds Review
General

csharp-refactor

No summary provided by upstream source.

Repository SourceNeeds Review
General

csharp-best-practices

No summary provided by upstream source.

Repository SourceNeeds Review