Rspecまとめ
Rspecは知ってはいたけど使ったこと無かった。
ちょっと興味がわいたので調べてみた。
まずは、BDD(ビヘイビア駆動開発)について。
基本的にTDD(テスト駆動開発)と思想的なところは変わらない。
TDDには、語弊があって、TDD=テスト手法というのは間違っていて、
実は設計手法だというのを明確に表すため、振る舞い=ビヘイビアという言葉を使うことにしたというだけ。
なので、実際、TDDの開発手法と違うところはない。
違うのは語彙だけ。(たぶん)↓
TDD | BDD |
---|---|
テストケース(テストメソッド) | exsample(実行可能なサンプル) |
テストクラス | 振る舞い(ビヘイビア) |
アサーション | エクスペクテーション |
実際のテストはこんな感じ。
describe "〜の時、" do
before do
@obj = TestTarget.new
end
it "aの値は100となる" do
@obj.a.should == 100
end
it "bの値は、0になる" do
@obj.b.should == 0
end
end
エラーが起きると、describeで指定した文字列+itで指定した文字列がエラー文字列として吐かれるので、
'〜の時、aの値は100となる':FAILD
という風になる。
また、実行結果を仕様書風に出力することもできるらしい。
Rspecの良いところは、仕様書っぽく書けること。と調べてて思った。
仕様書風に書くためには、1つのクラスのテストでも、describeを複数作らないと意味が通った文にならないため、うまいことファイルが分けられて見やすくなりそう。
Rspecに限って言えば、エクスペクテーションの記述がめちゃんこ分かり易い。
次はこれ使おう。