# Test Creator

> テストコードを作成する際に使用します。ユニットテスト、統合テスト、エンドツーエンドテストなど、あらゆる種類のテストコードを生成するためにこのスキルを利用してください。 Use when this capability is needed.

- Skill: `tomevault-io/test-creator-2` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add tomevault-io/test-creator-2`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tomevault-io/test-creator-2/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: tomevault-io (https://skillmd.com/u/tomevault-io)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/tomevault-io/test-creator-2

---


# テストコード作成スキル

このスキルは、テストコードを生成するためのガイドラインと手順を提供します。

## テストの実装方針

### 基本方針

- 過剰なカバレッジは追わず、維持可能で実用的なテストを優先する
- 正常系を中心に実装し、必要最小限の異常系を追加する
- **純粋なロジック部分のみをテスト対象とする**（ビジネスロジック、ユーティリティ関数など）
- **外部API（OpenAI/Azure OpenAI、Spotify、Google Drive、LINE等）は実呼び出しする場合のみテストし、環境変数がなければ `pytest.skip` で飛ばす**
- **Cosmos DBやStorageなどのインフラ依存は原則テストしない**（接続もモックもしない）
- 共通のセットアップが必要な場合は `conftest.py` にまとめる（現状は未使用）

### サービス単位の注意点

- リポジトリは `src/api`, `src/func`, `src/mcp` の3サービス構成。テストは対象サービスのディレクトリで実行する（例: `cd src/api && uv run pytest`）
- 各サービスで必要に応じてフィクスチャを追加する（現状は `monkeypatch` 等の標準的なものを使用）

### 外部APIの扱い

- **外部APIは実呼び出しを行う**（OpenAI/Azure OpenAI、Spotify、Google Drive等）
- **必要な環境変数がない場合は `pytest.skip` で飛ばす**
- 例: `if not os.getenv("OPENAI_API_KEY"): pytest.skip("OPENAI_API_KEY environment variable not set")`
- モックは使わず、実際の動作確認を重視する

### データベースと状態管理

- **Cosmos DBやStorageは原則テストしない**
- DBに依存しない純粋なロジック部分のみをテスト対象とする
- モックエージェントやダミークラスを使ってロジックを検証する（例: `test_digest_reorganizer.py` 参照）

## 実装手順（推奨ワークフロー）

1. 変更対象のサービスディレクトリで既存テストを確認する（`uv run pytest -q`）
2. **純粋なロジック部分を抽出してテスト対象を明確にする**
3. 外部API呼び出しが必要な場合は、環境変数チェックと `pytest.skip` を実装する
4. 作成したテストをローカルで実行・修正する（`uv run pytest <test_file>`）

## 注意点

- テストは `uv run pytest` で実行する（`uv` ラッパーはこのリポジトリの実行方針に準拠）
- DBやインフラ依存は避け、純粋なロジックのみをテストする
- 外部API呼び出しが必要な場合は環境変数チェックと `pytest.skip` を必ず実装する

---

このガイドに沿ってテストを実装してほしい。具体的なテストファイルの雛形や、既存テストの修正が必要なら手を入れるので知らせてください。

## Instructions

1. **方針確認**
   - 上の「テストの実装方針」を読み、対象サービス（`src/api` / `src/func` / `src/mcp`）に合わせて進める
   - **純粋なロジック部分のみをテスト対象とする**
   - DB依存部分はテストしない

2. **既存テストの確認**
   - 同じサービス内の既存テストを確認し、パターンを踏襲する
   - 例: `test_crypto_utils.py`（ロジックテスト）、`test_spotify_search.py`（API実呼び出し）

3. **テスト計画と実装**
   - 何を検証するか（ユーティリティ関数、ビジネスロジック等）を明確化する
   - 外部API呼び出しが必要な場合は環境変数チェックと `pytest.skip` を実装する
   - DB依存を避け、モックエージェントやダミークラスを使う（例: `test_digest_reorganizer.py`）

4. **実行と検証**
   - 対象サービスディレクトリで依存を固定してからテストを実行する:

```bash
cd src/api       # または src/func, src/mcp
uv sync --frozen
uv run pytest -q
```

   問題があれば修正し再実行する

---
> Converted and distributed by [TomeVault](https://tomevault.io/claim/tomodo1773) — claim your Tome and manage your conversions.
<!-- tomevault:4.0:skill_md:2026-04-16 -->

