前回toytterにrails2.0ならではの機能を入れて行くと言いましたが、拡張していくんならテストは無視できないよねと、いきなりの寄り道です。
railsには最初からテストをするための枠組みが用意されていて、かなりテストへの敷居は低くなっているんですが、それとは別にRSpec on Railsというものを使うこともできます。
このRSpec、やってくれることはTest::Unitと同じ「テスト」なんですが、非常に気持ちよくテストを書くことができます。特にTDD(テスト駆動開発)をやっている、やりたいって人にはお勧めです
こちらのページでとてもわかりやすく解説してくれています。
では早速、toytterでもrspecを使えるようにします。
インストール方法は
$ gem install rspec $ ./script/plugin install http://rspec.rubyforge.org/svn/tags/REL_1_1_3/rspec/ $ ./script/plugin install http://rspec.rubyforge.org/svn/tags/REL_1_1_3/rspec_on_rails
rspecとrspec_on_railsのバージョンは同じ必要があるので、gemで入れたものとは別に、vendor/pluginsにもrspecを入れておきます。こうすることで、gemのrspecがバージョンアップしても、既存のプロジェクトには影響がでなくなります。
インストールが終わったら、
$ ./script/generate rspec
で、ディレクトリや基本のファイルが作成されます。
モデルやコントローラー作る時には、いつものにrspec_をつけてあげればTest::Unit用のファイルの代わりに、RSpec用のが作られます。
$ ./script/generate rspec_model Hoge $ ./script/generate rspec_controller Hoge
toytterでもrspec用のテストファイルが欲しいので、
./script/generate rspec_model user ./script/generate rspec_model friendship ./script/generate rspec_model status ./script/generate rspec_controller user
で作り直しておきました。
で、なんもしないで"rake spec"ってやったらUser.new.valid?がfalseだよ!って怒られちゃったので、spec/models/user_spec.rbでUser.newしているところに適当な初期値を入れて回避です。
これでTDDの準備はOK!
次回こそはRails2.0でなんかやります!
押忍!
※このエントリはZDNETブロガーにより投稿されたものです。朝日インタラクティブ および ZDNET編集部の見解・意向を示すものではありません。