Rails3.2 でBDD、自動テストとか諸々の環境整えた備忘録


Railsでプロジェクトを進めるにあたり、BDD(振る舞い駆動開発)をやりたいと思いまずは環境構築をした覚え書きがこちらです。



Rspecまわり

まずは Rspec のテストを自動化したいと思って参考にしたエントリがこちら。

Curiosity PDF -


なるほど、SporkGuard というものを使うと自動テストが捗るらしい。
Spork は 高速なテストサーバのようなもので、Guard は自動テストパッケージ。


あと、Rspec でテスト書いて行くにあたって、テスト時のモデルデータを用意するのに Fixture よりも factory_girl が捗るらしい。
詳しくは など。
…という事で、これも組み込もう。
以下のエントリを参照した。
rspec, factory_girl, spork, guardによる自動テスト環境の構築 - AnyType



Javascriptまわり

それから、Javascript のテストも書かねば。て事で調べた結果、JS版Rspec的な位置づけの Jasmine を利用する事にした。


Rails で利用する場合、jasmine-rails を gem で入れれば良し。
で、入れると http://localhost:3000/specs とかでブラウザからテスト結果が確認できる。で、ファイル編集したらブラウザも自動リロードするようにしたい。
て事で参考にしたエントリが以下。

Guardを使ってファイル更新時にブラウザをオートリロード – ひげろぐ


guard-livereload と、Chrome, Safari, Firefox 用に存在するエクステンションで実現できるようだ。
各エクステンションのDL先はこちらを参照した。



テストを書くモチベーション維持するにはカバレッジ、という事で以下参考。

kennyjのブログ(仮): ruby1.9時代にrcovは使ってはいけない。simplecovを使おう!


Ruby1.8 までは rcov という gem を使うのが主流だったらしいけど、1.9 では simplecov らしい。



こんなんなりました

最終的に今入ってるテスト環境まわりの gem は以下のようになった。

group :development, :test do
  gem 'jasmine-rails'
  gem 'guard-rails-assets'
  gem 'guard-livereload'
  gem 'guard-jasmine-headless-webkit'
  gem 'rspec-rails'
  gem 'factory_girl_rails'
  gem 'cucumber-rails'
  gem 'simplecov'
  gem 'simplecov-rcov'
  gem 'ci_reporter'
  gem 'spork'
  gem 'guard-spork'
  gem 'guard-rspec'
  gem 'guard-cucumber'
  gem 'rb-fsevent'
  gem 'growl'
end



…という事で、調べだすとまあ Rails 周りは色々と環境が整ってて凄いな、モダンだなと感心する事しきりでした。Guard 超便利だなあ。


5/10 追記
最近やってるRailsプロジェクトのテスト方法 - #詰んでる日記
こちらがまとまってたー。Redisのテストとかも書かれてて参考にしたい。