【読書メモ】RspecによるRailsテスト入門

必要なテスト項目

- 必要不可欠な機能
- 過去に修正した不具合
- 既存の機能を壊した新機能
- 境界値の挙動を検証するテスト

モデルスペック

- スペックを作る
- バリデーション
- インスタンスメソッド
- スペックの整理

ポイント

- 期待する結果は能動系で明示的に記述すること
 - exampleの結果がどうなるかを動詞を使って説明すること
 - 起きてほしいこと、起きてほしくないことをテストすること
 - 境界値をテストすること
 - 可読性を上げるためにスペックを整理すること
  - describeとcontextはよく似たexampleを分類してアウトライン化
  - beforeブロックとafterブロックは重複を取り除く

- スペックの構造
 - 有効な属性で初期化された場合にモデルの状態が有効
 - バリデーションを失敗されるデータであればモデルの状態が有効
 - クラスメソッドとインスタンスメソッドが期待通りに動作する

- 4つのベストプラクティス
 - 期待する結果をまとめてdescribe
 - example(itで始まる1行)1つにつき、結果を1つだけ期待している
 - exampleも明示的
 - 各exampleの説明は動詞で始まっている

この記事が気に入ったらサポートをしてみませんか?