RSpec on Rails

吉見和也(Kazuya Yoshimi)

2008-02-12 19:54

前回toytterにrails2.0ならではの機能を入れて行くと言いましたが、拡張していくんならテストは無視できないよねと、いきなりの寄り道です。

railsには最初からテストをするための枠組みが用意されていて、かなりテストへの敷居は低くなっているんですが、それとは別にRSpec on Railsというものを使うこともできます。

このRSpec、やってくれることはTest::Unitと同じ「テスト」なんですが、非常に気持ちよくテストを書くことができます。特にTDD(テスト駆動開発)をやっている、やりたいって人にはお勧めです

こちらのページでとてもわかりやすく解説してくれています。

スはスペックのス【第1回】

では早速、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編集部の見解・意向を示すものではありません。

NEWSLETTERS

エンタープライズ・コンピューティングの最前線を配信

ZDNET Japanは、CIOとITマネージャーを対象に、ビジネス課題の解決とITを活用した新たな価値創造を支援します。
ITビジネス全般については、CNET Japanをご覧ください。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]