を使用して属性のデフォルト値をテストする方法をここに私のテストです:RSpecのは、コールバック
require 'spec_helper'
describe League do
it 'should default weekly to false' do
league = Factory.create(:league, :weekly => nil)
league.weekly.should == false
end
end
end
そして、ここに私のモデルです:
class League < ActiveRecord::Base
validates :weekly, :inclusion => { :in => [true, false] }
before_create :default_values
protected
def default_values
self.weekly ||= false
end
end
私は私のテストを実行すると、私は次のエラーメッセージが表示されます:
Failure/Error: league = Factory.create(:league, :weekly => nil)
ActiveRecord::RecordInvalid:
Validation failed: Weekly is not included in the list
私はリーグ記録を作成し、コールバックをトリガしようとする夫婦の異なるアプローチを試してみたが、私は持っていませんでした幸運。 RSpecを使ってコールバックをテストすることについて私が見逃していることはありますか?
before_createがトリガーされる前に検証がモデルで実行されるため、エラーが発生します。私はこのルートに行くことに決めました:http://stackoverflow.com/questions/6715468/attr-accessor-default-values/8775320#8775320。今すぐすべての作品。 – keruilin