RSpec1.0.0を入れてみた

http://rspec.rubyforge.org/documentation/rails/index.html

インストールは簡単。

gem install rspec

ドキュメントを写経してみた

# officer_spec.rb
require 'officer'

describe "All Employees", :shared => true do
  it "should be payable" do
    @employee.should respond_to(:calculate_pay)
  end
end

describe "All Managers", :shared => true do
  it_should_behave_like "All Employees"
  it "should be bonusable" do
    @employee.shoud respond_to(:apply_bounus)
  end
end

describe Officer do
  before(:each) do
    @employee = Officer.new
  end

  it_should_behave_like "All Managers"
  
  it "shoud be optionable" do
    @employee.should respond_to(:grant_options)
  end
end
# officer.rb
class Officer
end


実行結果

$ spec officer_spec.rb 
FFF

1)
'Officer should be payable' FAILED
expected target to respond to :calculate_pay
./officer_spec.rb:5:

2)
'Officer should be bonusable' FAILED
expected target to respond to :apply_bounus
./officer_spec.rb:12:

3)
'Officer shoud be optionable' FAILED
expected target to respond to :grant_options
./officer_spec.rb:24:

Finished in 0.017566 seconds

上の写経ポイントは、期待する振る舞いのまとめかただと思われ。

describe Officer do
 ・・・
  it_should_behave_like "All Managers"

it_should_behave_like "All Managers"