ガイドライン:
describe 'テスト対象' do
context '状態' do
describe 'テスト対象メソッド' do
context '与える入力' do
it '期待する出力'
end
end
end
end
テストを始める
インストール完了したら、テスト実行するまではこんな感じ。
$ rspec --init create spec/spec_helper.rb create .rspec
テストファイルを作成する。
spec/lib/dog_spec.rb
/lib/dog.rbのテスト
テストを実行。
$ rspec spec/lib/dog_spec.rb
おまけ、specify
specifyとはなんぞや? it と同じでこちらが最近の記法みたいでした。
it メソッドit メソッドは、エクスペクテーションを説明する文字列と、エクスペクテーショ ンを記述したブロックを引数に取ります。エクスペクテーションについてはこ の後で説明します。array_spec.rb の例でいえば:describe Array, "when empty" do...it "should be empty" do@empty_array.should be_emptyend...end「it "should be empty" do...end」の部分が 1 つの example です。エクスペクテー ションを説明する文字列は、"should ..."で始まる英語であることが期待され ています。これは、Ruby コードを見たプログラマに「it should be empty」と 読んでもらうためです。これが「it」などという人を食ったようなメソッド名を採用している理由です。ちなみに、この「it」が指している先は、describe の引数に書かれた説明です。 上の例では、空の Array インスタンスが it の指しているものです。ちなみに、 「it」メソッドはかつては「specify」というもっと穏当な名前でした。もちろん、「RSpec 開発チームの思惑には絶対服従!」というわけではありません。ですから、it "#empty? は true であること" do...と日本語で書いても RSpec を実行する上では問題ありません。「日本語で書い たら "it" が意味不明でどうしても気持ち悪い」と思われる方は、 互換性のために残されている旧来の API を使うこともできます。specify "#empty? は true であること" do ...この連載では割り切って "it" を使うことにします。
0 件のコメント:
コメントを投稿