技術ブログ

(技術系中心)基本自分用備忘録なので、あくまで参考程度でお願いします。

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

リクエストスペック

モックとスタブ

購入サイト

Everyday Rails - RSpecによるRailsテスト入門

Everyday Rails… Aaron Sumner 著 et al. [Leanpub PDF/iPad/Kindle]