テスト駆動開発ワークフロー
このスキルは、すべてのコード開発が包括的なテストカバレッジを備えたTDDの原則に従うことを保証します。
有効化するタイミング
- 新機能や機能の作成
- バグや問題の修正
- 既存コードのリファクタリング
- APIエンドポイントの追加
- 新しいコンポーネントの作成
コア原則
1. コードの前にテスト
常にテストを最初に書き、次にテストに合格するコードを実装します。
2. カバレッジ要件
- 最低80%のカバレッジ(ユニット + 統合 + E2E)
- すべてのエッジケースをカバー
- エラーシナリオのテスト
- 境界条件の検証
3. テストタイプ
ユニットテスト
- 個々の関数とユーティリティ
- コンポーネントロジック
- 純粋関数
- ヘルパーとユーティリティ
統合テスト
- APIエンドポイント
- データベース操作
- サービス間相互作用
- 外部API呼び出し
E2Eテスト (Playwright)
- クリティカルなユーザーフロー
- 完全なワークフロー
- ブラウザ自動化
- UI相互作用
TDDワークフローステップ
ステップ1:ユーザージャーニーを書く
[役割]として、[行動]をしたい、それによって[利益]を得られるようにするため
例:
ユーザーとして、セマンティックに市場を検索したい、
それによって正確なキーワードなしでも関連する市場を見つけられるようにするため。
ステップ2:テストケースを生成
各ユーザージャーニーについて、包括的なテストケースを作成:
describe('Semantic Search', () => {
it('returns relevant markets for query', async () => {
// テスト実装
})
it('handles empty query gracefully', async () => {
// エッジケースのテスト
})
it('falls back to substring search when Redis unavailable', async () => {
// フォールバック動作のテスト
})
it('sorts results by similarity score', async () => {
// ソートロジックのテスト
})
})
ステップ3:テストを実行(失敗するはず)
npm test
# テストは失敗するはず - まだ実装していない
##…