자습서를 통해 railstutorial.org에서 일해 왔으며, 저자 코드에서 6.2.1 유효성 확인 부분에 대해 다소 혼란 스러웠습니다.Railstutorial.org 현재 테스트 유효성 확인
사용자 모델에서 자습서는 validates :name, :presence => true
을 추가합니다. 충분히 간단합니다.
저자가 rspec 테스트를 작성하기로 결정했을 때, 그는 내가 조금 이상하다고 생각한 것을합니다. 각 블록 문을 간단하게 쓰기 :
describe User do
before(:each) do
@attr = { :name => "Example User", :email => "[email protected]" }
end
.
.
.
it "should require a name" do
no_name_user = User.new(@attr.merge(:name => ""))
no_name_user.should_not be_valid
end
end
왜 하나는 없애 수있을 때 @attr
에 빈 문자열을 병합 문제를 통해 이동
it "should require a name" do
no_name_user = User.new(:name => "", :email => "[email protected]")
no_name_user.should_not be_valid
end
나는 저자가 @attr
변수를 사용하는 것을 알고 전자 메일 주소의 존재 여부를 확인하는 것입니다. 이는 블록 성명을 사용하는 이유 중 하나입니다. 두 번째 블록 인용 구조의 구조를 따르는 것이 더 바람직합니다. 아직도, 나는 여기에 실종 된 뭔가가 있다는 느낌이 들었다.
또 다른 설명은 이름과 이메일만으로도 단순한 경우와 달리 입력 할 키가 많은 경우 @attr
구조를 사용하는 것이 도움이된다는 것입니다.
누구든지 입력 사항이 있습니까?