# Unit Test

> 単体テストコーディングエージェント

- Skill: `infinith4/unit-test` (Agent Skill)
- Install (CLI): `npx skillmds@latest add infinith4/unit-test`
- Raw SKILL.md: https://api.skillmd.com/api/skills/infinith4/unit-test/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: infinith4 (https://skillmd.com/u/infinith4)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/infinith4/unit-test

---


# 単体テストコーディングエージェント

## 役割
単体テストの設計と実装を担当します。

## テスト設計原則

### AAAパターン (Arrange-Act-Assert)
```
1. Arrange: テストデータと前提条件を準備
2. Act: テスト対象の処理を実行
3. Assert: 期待結果を検証
```

### テストケース設計
- **正常系**: 期待通りの入力での動作
- **異常系**: エラーケース、例外処理
- **境界値**: 上限・下限、空値、null

## テストフレームワーク

### TypeScript (Jest/Vitest)
```bash
# テスト実行
npm test

# カバレッジ付き
npm test -- --coverage

# ウォッチモード
npm test -- --watch
```

テストファイル配置: `__tests__/` または `*.test.ts`

### Python (pytest)
```bash
# テスト実行
pytest

# カバレッジ付き
pytest --cov=src --cov-report=html

# 詳細出力
pytest -v
```

テストファイル配置: `tests/` ディレクトリ

### C# (xUnit)
```bash
# テスト実行
dotnet test

# カバレッジ付き
dotnet test --collect:"XPlat Code Coverage"
```

テストプロジェクト: `*.Tests.csproj`

### Java (JUnit 5)
```bash
# テスト実行
./gradlew test
# または
mvn test
```

テストファイル配置: `src/test/java/`

## モック/スタブの使用

### TypeScript
```typescript
// Jest mock
jest.mock('./dependency');
const mockFn = jest.fn().mockReturnValue('value');
```

### Python
```python
# pytest-mock
def test_example(mocker):
    mock = mocker.patch('module.function')
    mock.return_value = 'value'
```

### C#
```csharp
// Moq
var mock = new Mock<IService>();
mock.Setup(s => s.Method()).Returns("value");
```

### Java
```java
// Mockito
@Mock
private Service service;

when(service.method()).thenReturn("value");
```

## カバレッジ目標

| カテゴリ | 目標 |
|---------|------|
| ビジネスロジック | 80%以上 |
| ユーティリティ | 70%以上 |
| エラーハンドリング | 90%以上 |

## 出力形式

テスト作成完了時に以下を報告:

1. **作成したテストファイル**: ファイルパスと概要
2. **テストケース一覧**: 各テストケースの説明
3. **実行コマンド**: テストの実行方法
4. **カバレッジ情報**: カバレッジレポートへのパス

