2012-01-18 2 views
3

기본 Rails 테스트 스위트를 사용하여 특정 유효성 검사 만 테스트하는 테스트는 어떻게 작성합니까? 예를 들어 존재 여부, 숫자 및 유효성 검사기에 대한 유효성 검사가있는 경우 숫자를 테스트하는 방법은 무엇입니까? 레일 테스트 - 특정 유효성 검사를 테스트하는 방법?

내가 숫자 검증 작업이없는 말, 그래서이 테스트는 실패한다 :

test "should test numeric validator" do 
    post = Post.new(:number => 'not a number') 
    assert !post.save, "it saved a non-numeric value for :number" 
end 

하지만 내 자신의 유효성 검사기는 그것이 다른 이유로 저장하는 것을 허용하지 않았기 때문에 그렇게 통과거야 내 테스트는 실제로 제대로 테스트하지 않습니다.

답변

4

당신은 특정 필드에 대한 post.errors 해시를 주장 coud, 즉 :

assert_nil post.errors[:number], "it saved a non numeric value for :number" 
관련 문제