【読書メモ】RspecによるRailsテスト入門
必要なテスト項目
- 必要不可欠な機能
- 過去に修正した不具合
- 既存の機能を壊した新機能
- 境界値の挙動を検証するテスト
モデルスペック
- スペックを作る
- バリデーション
- インスタンスメソッド
- スペックの整理
ポイント
- 期待する結果は能動系で明示的に記述すること
- exampleの結果がどうなるかを動詞を使って説明すること
- 起きてほしいこと、起きてほしくないことをテストすること
- 境界値をテストすること
- 可読性を上げるためにスペックを整理すること
- describeとcontextはよく似たexampleを分類してアウトライン化
- beforeブロックとafterブロックは重複を取り除く
- スペックの構造
- 有効な属性で初期化された場合にモデルの状態が有効
- バリデーションを失敗されるデータであればモデルの状態が有効
- クラスメソッドとインスタンスメソッドが期待通りに動作する
- 4つのベストプラクティス
- 期待する結果をまとめてdescribe
- example(itで始まる1行)1つにつき、結果を1つだけ期待している
- exampleも明示的
- 各exampleの説明は動詞で始まっている