← スキル一覧に戻る

test-guide
by kami8ma8810
猫飼育可能物件アーカイブサービス
⭐ 0🍴 0📅 2026年1月17日
SKILL.md
name: test-guide description: テストの書き方とTDDの実践ガイド
テストガイド
TDD(テスト駆動開発)の基本
Red-Green-Refactor サイクル
- Red: 失敗するテストを書く
- Green: テストが通る最小限の実装をする
- Refactor: コードを改善する(テストは常にグリーン)
TDD のメリット
- 要件が明確になる
- リグレッションを防げる
- リファクタリングが安全にできる
- ドキュメントとして機能する
テストの種類
単体テスト(Unit Test)
- 個々の関数・コンポーネントをテスト
- 依存関係はモック化
- 高速に実行できる
統合テスト(Integration Test)
- 複数のモジュールの連携をテスト
- データベースや API との連携を含む
E2E テスト(End-to-End Test)
- ユーザーの操作フローをテスト
- ブラウザを使った実際の操作
テストの書き方
命名規則
// describe: テスト対象を記述
describe('PropertySearch', () => {
// it: 期待する動作を記述
it('should filter properties by rent range', () => {
// テスト内容
})
it('should return empty array when no properties match', () => {
// テスト内容
})
})
AAA パターン
it('should calculate total rent correctly', () => {
// Arrange(準備)
const property = { rent: 80000, managementFee: 5000 }
// Act(実行)
const total = calculateTotalRent(property)
// Assert(検証)
expect(total).toBe(85000)
})
良いテストの特徴
- 独立性: 他のテストに依存しない
- 再現性: 何度実行しても同じ結果
- 明確性: 何をテストしているか分かる
- 高速性: 素早く実行できる
テストすべき内容
必須
- 正常系(ハッピーパス)
- 境界値
- エラーケース
- null/undefined の処理
推奨
- エッジケース
- 非同期処理
- 状態の変化
モックの使い方
基本
// API コールのモック
vi.mock('@/api/properties', () => ({
fetchProperties: vi.fn(() => Promise.resolve([
{ id: 1, name: 'テスト物件' }
]))
}))
注意点
- モックは最小限に
- 実装の詳細ではなく振る舞いをテスト
- モックが多すぎる場合は設計を見直す
アンチパターン
❌ 避けるべきこと
- 実装の詳細をテスト
- テスト間の依存
- 不安定なテスト(Flaky Test)
- テストのためだけのコード変更
- 過度なモック
✅ 推奨すること
- 振る舞いをテスト
- 1つのテストで1つのことを検証
- 分かりやすいテスト名
- テストも保守しやすく書く
スコア
総合スコア
40/100
リポジトリの品質指標に基づく評価
✓SKILL.md
SKILL.mdファイルが含まれている
+20
○LICENSE
ライセンスが設定されている
0/10
○説明文
100文字以上の説明がある
0/10
○人気
GitHub Stars 100以上
0/15
○最近の活動
3ヶ月以内に更新がある
0/10
○フォーク
10回以上フォークされている
0/5
✓Issue管理
オープンIssueが50未満
+5
✓言語
プログラミング言語が設定されている
+5
○タグ
1つ以上のタグが設定されている
0/5
レビュー
💬
レビュー機能は近日公開予定です