2012-12-11 6 views
57

내가 잘 했어야 매처 (matcher) 다음과 같은 검증을 작동었던 :했어야/RSpec에는 정합 - 조건 확인 내 코드에서

:

내 모델에서
it { should validate_presence_of(:name) } 

, 내 검증에 조건을 추가 한

validates_presence_of :name, :if => eligible? 

유효성 확인시이를 반영 할 수 있습니까?

나는 치정 용법자를 위해 documentation을 보았지만 해결책을 찾을 수 없었습니다.

감사합니다.

답변

117

shoulda_matchers가이 작업을 수행하는 것이 표시되지 않습니다하지만 RSpec에 3으로 스스로 ::

context "if eligible" do 
    before { allow(subject).to receive(:eligible?).and_return(true) } 
    it { should validate_presence_of(:name) } 
    end 

    context "if ineligible" do 
    before { allow(subject).to receive(:eligible?).and_return(false) } 
    it { should_not validate_presence_of(:name) } 
    end 
+10

를 작성하는 쉬운 충분'전에 {(피사체)를 수신 .TO 수 (? : 자격). and_return (true)}' – Raf