3
내 포스트 모델에 조건부 검증이 있습니다조건부 유효성 검사가 실패하는 이유는 무엇입니까?
validates :title, :presence => true, :if => Proc.new { |post| post.post_type == "text" }
그리고 내 post_spec.rb
파일에 다음과 같은 사양을 가지고 :
it "should only require a title if the post type is text" do
post = Post.new(@attr.merge(:title => "", :post_type => "text"))
post.should_not be_valid
post = Post.new(@attr.merge(:title => "", :post_type => "image"))
post.should be_valid # This fails
end
내 질문은 : 왜 두 번째 테스트가 실패 하는가?
우리는 실패 할 수있는 다른 검증이없는 가정해야하고,'@의 attr'의 나머지 값은 유효 ...
을 당신이 무엇을 얻을 참조 : 레일 콘솔에 가서 무엇입니까? –
예, 두 번째 게시물 작성에서 빈 제목을 제거하면 유효성 검사가 통과됩니다. 따라서 제목 유효성 검사가 실패하고 나머지는 유효합니다. –
규칙을'post.errors.should be_empty'와 같이 변경했다면, 적어도 더 자세한 설명이 실패 할 것입니다. (또는 심지어 post.errors [: title]', 그게 당신이 테스트하고있는 것이기 때문에) ' – numbers1311407