RSpec リファクタリング
RSpecテストコードを分析し、可読性・保守性・実行速度の観点からリファクタリングを提案・実行します。
参照ガイド
- •RSpec:
~/.claude/references/rspec-guide.md
使用方法
code
/rspec-refactor <specファイルパス>
引数
- •
$ARGUMENTS: 対象specファイルのパス(必須)
実行手順
Phase 1: 現状分析
- •対象ファイルを読み込む
- •以下の観点で問題点を特定:
- •テスト構造の可読性(describe/context/itの階層)
- •DRY原則(let vs let!、shared_examples)
- •実行速度(build vs create、不要なデータ作成)
- •マッチャーの最適化
- •FactoryBotの使い方
Phase 2: リファクタリング提案
- •発見した問題点をリスト化
- •優先度付け:実行速度 > 可読性 > DRY
- •ユーザーに提案内容を確認
Phase 3: 修正実行
- •ユーザー承認後、段階的に修正
- •各修正後にテストが通ることを確認
bash
docker compose run --rm app bin/rspec <specファイルパス>
チェックリスト
- •
let!よりletを優先しているか - •
createよりbuild/build_stubbedを使えないか - •
allow_any_instance_ofを使っていないか - • beforeブロック1行なら
{}形式か - •
subject { -> { ... } }のlambda記法を使っていないか - • 各contextは独立しているか
- • 不要なデータ作成はないか
注意事項
- •テストの独立性を維持: 各テストは他に依存しない
- •過度なDRYは避ける: テストは「新聞記事」のように読めることが重要
- •データ操作で状態を作らない:
destroy!より「最初から作らない」