← Back to list

testing
by DIO0550
CC MarketPlace
⭐ 0🍴 0📅 Jan 25, 2026
SKILL.md
name: testing description: 単体テストルール。フラット構造、モック使用制限、パラメータ化テスト、テストピラミッドなどの規約を定義。Vitest/Jest使用時に参照。
単体テストルール
単体テスト実装における規約を定義するスキル。
基本ルール
- 網羅テスト: 正常系・異常系・境界値のテストケースを作成
- 振る舞いのテスト: 実装詳細ではなく振る舞いを確認
- モックは最小限: 基本はモックを使用しない
- フラット構造: describeブロックの過度な使用を避ける
- テストケース名: 日本語で記述
- パラメータ化:
test.eachを活用
テスト構造(フラット原則)
// ✅ 推奨: describeなしのフラット構造
test("有効な認証情報でログインするとトークンが返る", () => {
const result = login({ email: "test@example.com", password: "valid" });
expect(result.token).toBeDefined();
});
test("無効なメールではValidationErrorが発生する", () => {
expect(() => login({ email: "invalid", password: "valid" }))
.toThrow(ValidationError);
});
モックルール
モック禁止対象
- 自作の関数・コンポーネント
- プロジェクト内のユーティリティ関数
- 内部状態管理ロジック
モック許可対象
- HTTPリクエスト(fetch、axiosなど)
- 外部API呼び出し
- ファイルシステムアクセス
- データベース接続
- 時間依存処理(Date、setTimeoutなど)
パラメータ化テスト
test.each([
[1, 2, 3],
[5, 5, 10],
[-1, 1, 0],
])("add(%i, %i) は %i を返す", (a, b, expected) => {
expect(add(a, b)).toBe(expected);
});
テストピラミッド
| レベル | 比率 | 対象 |
|---|---|---|
| 単体テスト | 70-80% | 関数、メソッド、個別コンポーネント |
| 統合テスト | 15-25% | モジュール間連携、API統合 |
| E2Eテスト | 5-10% | ユーザーシナリオ全体 |
ディレクトリ構成
__tests__/
├── user-login.test.ts
├── user-registration.test.ts
├── user-profile.test.ts
└── helpers/
└── user-test-utils.ts
適正化指針
- 重複テストの排除: 同じ振る舞いを複数方法でテストしない
- 実装詳細のテスト禁止: privateメソッドや内部状態の直接テストは行わない
- 公開インターフェースのみテスト: 外部から呼び出される関数に集中
- ファイル分割: 100-150行を超えたら分割
関連スキル
- TDD:
tdd - カスタムフック:
custom-hook
Score
Total Score
60/100
Based on repository quality metrics
✓SKILL.md
SKILL.mdファイルが含まれている
+20
✓LICENSE
ライセンスが設定されている
+10
○説明文
100文字以上の説明がある
0/10
○人気
GitHub Stars 100以上
0/15
○最近の活動
3ヶ月以内に更新がある
0/10
○フォーク
10回以上フォークされている
0/5
✓Issue管理
オープンIssueが50未満
+5
✓言語
プログラミング言語が設定されている
+5
○タグ
1つ以上のタグが設定されている
0/5
Reviews
💬
Reviews coming soon