test-data-generation について
自動テストや開発向けに、現実的で一貫性のあるテストデータを生成するスキルです。再利用可能なファクトリー、フィクスチャ、ビルダーを使い、境界値や関連データを含むシナリオを作成できます。
主な機能
- 01再利用可能なデータファクトリー
- 02複雑なオブジェクト向けビルダー
- 03統合テスト用フィクスチャ
- 04現実的で一意な値
- 05境界値・エッジケースデータ
活用シーン
- 01統合テスト用フィクスチャの作成
- 02開発用データベースのシード
- 03関連するテストレコードの生成
- 04境界値や特殊な入力のテスト
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ aj-geddes/ useful-ai-prompts --skill test-data-generationインストール後、Claude Code で/test-data-generationを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/builder-pattern-for-complex-objects.mdfactory-pattern-for-test-data.mdfixtures-for-integration-tests.mdrealistic-data-generation.mdscripts/scaffold-tests.shtemplates/test-template.js詳細
テストデータ生成
目次
概要
テストデータ生成では、自動テスト用の現実的で一貫性があり、保守しやすいテストデータを作成します。適切に設計されたテストデータは、テストの壊れやすさを軽減し、読みやすさを向上させ、多様なテストシナリオを作りやすくします。
使用する場面
- 統合テスト用のフィクスチャを作成する
- 開発用データベースに使うフェイクデータを生成する
- 複雑な関連を持つテストデータを構築する
- テスト用の現実的なユーザー入力を作成する
- テストデータベースに初期データを投入する
- エッジケースや境界値を生成する
- 再利用可能なテストデータファクトリーを構築する
クイックスタート
最小限の動作例:
// tests/factories/userFactory.js
const { faker } = require("@faker-js/faker");
class UserFactory {
static build(overrides = {}) {
return {
id: faker.string.uuid(),
email: faker.internet.email(),
firstName: faker.person.firstName(),
lastName: faker.person.lastName(),
age: faker.number.int({ min: 18, max: 80 }),
phone: faker.phone.number(),
address: {
street: faker.location.streetAddress(),
city: faker.location.city(),
state: faker.location.state(),
zip: faker.location.zipCode(),
country: "USA",
},
role: "user",
isActive: true,
createdAt: faker.date.past(),
...overrides,
};
}
// ... (see reference guides for full implementation)
リファレンスガイド
詳細な実装は references/ ディレクトリにあります。
| ガイド | 内容 |
|---|---|
| テストデータのファクトリーパターン | テストデータのファクトリーパターン |
| 複雑なオブジェクトのビルダーパターン | 複雑なオブジェクトのビルダーパターン |
| 統合テスト用フィクスチャ | 統合テスト用フィクスチャ |
| 現実的なデータ生成 | 現実的なデータ生成 |
ベストプラクティス
✅ 推奨事項
- 現実的なデータには Faker ライブラリを使用する
- よく使うオブジェクトには再利用可能なファクトリーを作成する
- オーバーライドで柔軟に設定できるファクトリーにする
- 必要に応じて一意の値(メールアドレス、ID)を生成する
- 複雑なオブジェクトの構築にはビルダーを使用する
- 統合テストのセットアップ用にフィクスチャを作成する
- エッジケース(空文字列、null、境界値)を生成する
- 可能な限りテストデータの決定性を保つ
❌ 避けるべきこと
- テストデータを複数箇所にハードコードする
- テストで本番データを使用する
- 再現可能なテストで真にランダムなデータを生成する
- 過度に複雑なファクトリー階層を作成する
- データの関連や制約を無視する
- 単純なテストに大量のデータセットを生成する
- 生成したデータのクリーンアップを忘れる
- すべてのテストで同じテストデータを使用する
コメント
Markdown 対応