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"