2012-01-13 3 views
1

를 사용하여 속성에 대한 기본 값을 테스트하는 방법을 여기에 내 테스트입니다 :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 

내 테스트를 실행할 때, 나는 다음과 같은 오류 메시지가 나타납니다 :

리그 기록을 만들고 콜백을 시작하는 데 몇 가지 다른 방법을 시도했지만, 행운을 빌어 요. RSpec을 사용하여 콜백을 테스트하는 것에 대해 놓친 부분이 있습니까?

+0

before_create가 트리거되기 전에 모델에서 유효성 검사가 실행되므로 오류가 발생합니다. 나는이 길로 가기로 결심했다 : http://stackoverflow.com/questions/6715468/attr-accessor-default-values/8775320#8775320. 이제 모든 작품. – keruilin

답변

1

작성하기 전에 주간을 false로 설정 한 다음 주간을 nil로 설정하여 실제로 false를 덮어 쓰는 것입니다.

그냥 테스트에

require 'spec_helper' 

describe League do 

    it 'should default weekly to false' do 
     league = Factory.create(:league) # <= this line changed 
     league.weekly.should == false 
    end 
    end 

end 

을한다. 명시 적으로 nil을 설정할 필요가 없습니다.

+0

새 RSpec3을 사용하면 (league.weekly). false가되어야합니다. – moeabdol