2010-08-02 2 views
0

Rspec을 사용하여 아래의 방법을 어떻게 다룰 수 있습니까?Rspec 모델 사양

def validate 
    if !self.response.blank? && !self.response.match("<").nil? 
    self.errors.add :base, 'Please ensure that Response field do not contain HTML(<and>) tags' 
    end 
end 

아무도 도와 줄 수 있습니까?

+8

이전 질문에 대한 유용한 답변을 수락하면 사람들이 더 많은 도움을받을 수 있습니다. 커뮤니티를 다시 돌려주는 것이 좋고 쉬운 방법이며 비슷한 문제가있는 사람들을 도울 것입니다. 그들을위한 해결책을 찾는다. – Vladimir

답변

4

원하는 코드에서 response 속성의 유효성을 검사하고 유효하지 않은 경우 오류 메시지가 표시됩니다. 그래서 모델을 가정하는 포스트 이름

:

context "HTML tags in response" do 
    before(:each) do 
    @post = Post.new(:response => "<") 
    end 

    it "should not be valid" do 
    @post.should_not be_valid 
    end 

    it "should set the error hash" do 
    @post.errors.should include('Please ensure that Response field do not contain HTML(<and>) tags') 
    end 
end 

당신은 모델이 아닌 구현의 원하는 행동 확인해야합니다. 유효성 검사가 사용자 정의 메서드에서 발생하는지 Rails 빌트인 유효성 검사 루틴에서 발생하는지는 중요하지 않습니다.

일반적으로 errors.base이 아닌 오류 메시지를 특성에 추가하는 것이 좋습니다. 따라서 대신 말할 수도 있습니다.