RSpec2 で Shoulda の matcher を使う
RSpec でテストを書く時に、便利な matcher を定義してくれるのが Shoulda です。これの matcher を RSpec から利用する方法について(何もしないでも使えそうだったのですが、一部メソッドが undefined だと怒られてしまったので)。
まずは Gemfile を修正。
- before
group :development, :test do gem 'rspec' gem 'rspec-rails' gem 'autotest' gem 'webrat' end
- after
group :development, :test do gem 'rspec' gem 'rspec-rails' gem 'shoulda' gem 'shoulda-matchers' gem 'autotest' gem 'webrat' end
さらに Rails.root/spec/spec_helper.rb に一行追加。
# This file is copied to spec/ when you run 'rails generate rspec:install' ENV["RAILS_ENV"] ||= 'test' require File.expand_path("../../config/environment", __FILE__) require 'rspec/rails' require 'shoulda-matchers' # この行を追加 # 以下略
これで、以下のような書式で関連をテストするなど、便利な書き方ができるようになりました。
require 'spec_helper' describe Category do before(:each) do @category = Category.new end it "should have many items" do @category.should have_many :items end end