はじめに

Ruby on Railsでの自動化テスト環境を構築します。

テストDBの構築

未実行のマイグレーションを実行します。

$ rake db:migrate

いきなり怒られました。gemfile.lockのrakeのバージョンを10.3.1にしましょう。

rake aborted!
Gem::LoadError: You have already activated rake 10.3.1, but your Gemfile requires rake 10.2.2. Prepending `bundle exec` to your command may solve this.
/workspace/idns/config/boot.rb:6:in `'
/workspace/idns/config/application.rb:1:in `'
/workspace/idns/Rakefile:5:in `'
(See full trace by running task with --trace)

次に、schema.rbに基いてテストDBにを作成します。

$ rake db:test:load

test DBにテスト用のテーブルが揃っています。めっちゃ簡単ですね。

$ rails dbconsole test
SQLite version 3.7.7 2011-06-25 16:35:41
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> .tables
books              idns               schema_migrations
sqlite> 

テストデータの準備

Railsのテストでは、test/fixturesフォルダにあるフィクスチャがテスト実行時に
自動的に展開されますのでデータの準備をするだけでOKです。

$ rake db:fixtures:load

テストフレームワーク

Railsで目指せ、情熱エンジニア(7):Railsの人気テストフレームワーク6選! – @IT によると、RSpecが良さそうです。

以前、QA勉強会でDeNAさんで実践されている構成で試してみようと思います。
「RSPecとSeleniumとCapybaraで自動化テスト構成」