RSpecのチュートリアルをやってみる
スはスペックのス 【第 1 回】 RSpec の概要と、RSpec on Rails (モデル編)
とりあえずやってみた。日本語にはしていない。
インストール
記述を無視して最新版(1.1.4)を突っ込む。
今の本家サイトは下記のところっぽい。
http://rspec.info/
downloadを見るとgemかgithubしか書いてない。
gitでpluginsフォルダに入れる。
http://github.com/dchelimsky/rspec-rails/wikis
cd vendor/plugins git clone git://github.com/dchelimsky/rspec.git git clone git://github.com/dchelimsky/rspec-rails.git
Rspec on RailsはRspec Railsになったのかな??
ちなみに、svnならこっちみたい。
script/pluginでインストールしてくれる。
ruby script/plugin install svn://rubyforge.org/var/svn/rspec/tags/CURRENT/rspec ruby script/plugin install svn://rubyforge.org/var/svn/rspec/tags/CURRENT/rspec_on_rails
specファイル書いてみた
チュートリアルに従って、サンプルアプリを作ってみる。
modelまでしかやってないけど、まあサクサクと作れる。
自然言語に近い形になっているので、僕のように直感で生きている者にとってはとても使いやすいように感じた。
書いたままの形でドキュメントも吐いてくれるし、いちいち仕様書とか作らなくても、「どこで、どんなことを」テストしているのかがすぐわかる。
いくら書き直しても、テストコードが保証してくれる安心感はとてもいい!
テスト&デバッグ、いつになったらバグがなくなるのかの不安からかなり解放されるんじゃないかとわくわくする!
疑問
Rspec書いてる途中でやっちゃったのが、テストファイル自体を間違えて記述しちゃったこと。しかもテスト結果が成功の場合。
例えば・・・
fooとbarというメソッドがあり、それぞれメソッド名を出力するとする。
そのテストを書くとすると・・・
(省略) it "should be 'foo'" do @foo.foo.should == "foo" end it "should be 'bar'" do @foo.foo.should == "foo" # barの結果を見たいのに・・・ end (省略)
どうみてもコピペ厨です本当にry
さてこのテストコード。出力してもOKが出てしまうし、もう一回テストソースを覗かないと間違っているとはわからない。
テストでエラーが出ればテストコード自体もチェックが入ると思うけど、通ってしまっている場合はどうなるのだろうか?
テストコード自体の妥当性をどう証明するかをいろいろ調べてみよう。