RSpecのpluginのinstallがうまくいかないときのオプション指定
今さらだけどRSpecを使ってみました。
まずはインストール。
sudo gem install rspec
”spec -v”でRSpecのバージョンが確認できたらOK。
さらにRailsで使う場合はpluginが用意されています。
ruby script/plugin install svn://rubyforge.org/var/svn/rspec/tags/REL_0_8_2/vendor/rspec_on_rails/vendor/plugins/rspec
そして
ruby script/generate rspec
これでいけるはずだったのですが、
Couldn't find 'rspec' generator
というメッセージが。おかしいな。pluginのinstallでエクスポート完了のメッセージは確認したのに。ところがRAILS_ROOT/vendor/plugin/を見ても何も入っていません。うーん、どうもpluginのinstallに失敗しているみたい。
いろいろネットを探しても原因がよくわからずに、もうRSpecをあきらめかけていたときに救いのサイトが見つかりました。 Problem Installing Rails Pluginsという記事に、pluginのinstall時に-xオプションをつけてごらんと書いてあります。-xオプションってなんだろう。ヘルプによると、svn:externals属性の指定だと書いてある。さらに調べてみると、作業コピーの上に別のリポジトリからcheckoutしたときに、そいつも一緒に管理できるようになるみたい。という理解でいいのかな? とりあえずやってみよう。
ruby script/plugin install -x svn://rubyforge.org/var/svn/rspec/tags/REL_0_8_2//vendor/rspec_on_rails/vendor/plugins/rspec
お、今度はたくさんファイルがcheckoutされたぞ。
ruby script/generate rspec
の結果も
create spec
create spec/spec_helper.rb
create spec/spec.opts
create script/rails_spec_server
となりました。よかったよかった。
RSpecを使って初めてBDDにチャレンジしてみました。ちょうど新しいアプリを作ろうとしていたのでタイミングがよかったです。TDDは昔試したことがあったのだけど、結局のところ何をテストに書いていいのかがよくわからなくなってしまって投げ出していました。必要のないところのテストを書いていたりとか、コントローラがらみの部分をうまく書けなかったりなどなどで、イヤになってしまったのです。たぶん、TDDに対する理解が全然なかったのでしょう。
だけどBDDは楽しい! Red->Green->Refactoringの流れも自然と身についてきて、どんどんRSpecにかけるのが病み付きになってきました。結果がGreenになったときの気持ちよさはいいですね。頭も今までプログラミングしていたときとはちょっと違う視点を持っているような印象があって、リファクタリングのアイデアがおもしろいように湧いてきます。すごいな、これ。
ちょっとまだ理解できていないのがMock。どうしてこれが必要なのかよくわからない。Railsにはテスト用のDBが用意されているのだから、DBアクセスを仮想化する意味がないように思えるのだけど。
自分メモ
specはオールグリーン。次は登録解除のモデルまわりの仕様から