Everyday Rails - RSpecによるRailsテスト入門のまとめ
Everyday Rails - RSpecによるRailsテスト入門のまとめ
読みました。 超適当に内容まとめる。
全体
- describe、context、before、after を使ってスペックを DRY にする
- マッチャはREADMEを参考にすると良い。参考リンク
- shoulda-matchersを利用すれば、便利なカスタマイズマッチャが利用できる。
- subjectを利用するとワンライナーでテストコードが書けるので綺麗になる
テストデータ
- テストデータはフィクスチャよりFactoryBotの方が良い
- フィクスチャは早いけど、脆くて壊れやすい。
- FactoryBot では シーケンス を使ってユニークバリデーションを持つフィールドを扱うこと ができます。参考リンク
- FactoryBotはassociationで関連付けすることができる。参考リンク
- FactoryBotのメソッドのうち build ... インスタンスを生成するメソッド。newと同じ create ... データのsaveまでを行う。ただし、saveされたデータは、1回のテストが終わったら消えてしまう。
- callバックメソッドを利用すれば、ファクトリがオブジェクトを create する前、もしくは create した後に何かしら追加のアクションを実行できます。参考リンク
フィーチャスペック
- モデルとコントローラーが他のモデルやコントローラとうまく連動するか確認するテストのこと
- ブラウザテストで有名なgemはCapybara
リクエストスペック
モックとスタブ
- API開発で必須のテスト、理解が難しい
- RSpec でモックを作る際の double、instance_double、class_doubleが存在する 違い: RSpec における double / spy / instance_double / class_double のそれぞれの違いについて - Qiita
購入サイト
Everyday Rails - RSpecによるRailsテスト入門
Everyday Rails… Aaron Sumner 著 et al. [Leanpub PDF/iPad/Kindle]