RoR 모델 유효성 검사를 테스트하는 많은 예제가 있습니다. 테스트를 여러 모델에 걸쳐 DRY 상태로 유지할 수도 있습니다. 하지만 이미 테스트 된 Rails를 테스트하지 않습니까?레일스 모델 유효성 검사
@user = User.make
@user.name = nil
@user.should_not be_valid
레일 검증이 작동하는지 테스트하지 않습니까?
RoR 모델 유효성 검사를 테스트하는 많은 예제가 있습니다. 테스트를 여러 모델에 걸쳐 DRY 상태로 유지할 수도 있습니다. 하지만 이미 테스트 된 Rails를 테스트하지 않습니까?레일스 모델 유효성 검사
@user = User.make
@user.name = nil
@user.should_not be_valid
레일 검증이 작동하는지 테스트하지 않습니까?
레일 검증이 작동하는지 테스트하지 않습니까?
요점은 모델에서 이름 존재 여부를 테스트한다는 것입니다. 실제로 Rails 검증이 작동하고, Rspec이 작동하며, Ruby가 작동하고, OS가 작동하며, 물리 규칙이 갑자기 변경되지 않았 음을 실제로 테스트 한 사실 또한 요점입니다.
감사합니다. Ruby에서 어떤 동작을 덮어 쓰면 기본 흐름이 손상 될 수 있다는 것을 이해합니다. –
요점은 모델에서 유효성 검사를 사용하고 있는지 테스트하는 것입니다. 나는 당신의 예제가 검증 자체를 테스트하고, 테스트 또한 다소 모호하다는 것에 동의한다.
어깨 보석을 사용하는 경우 should validate_presence_of(:name)
을 사용하면됩니다.
update_attribute (update_attribute가 유효성 검사를 건너 뜁니다.)를 호출 한 프로그램의 메소드를 생각해보십시오. 이 메서드를 호출하면 개체가 잘못된 상태가되지만 데이터베이스는 계속 업데이트됩니다. 유효한?/무효를 사용하고 있습니까? 그러한 사례를 잡는 데 도움이 될 수 있습니다.
여러 모델에서 테스트를 통합하는 것을 권장하지 않습니다. 그 이유는 오늘날의 동작이 동일하기 때문입니다. 모델이 더 이상 다른 모델과 똑같이 동작하지 않을 때마다 테스트와 여러 모델 사이에 생성 된 종속성을 언 롤링하는 것은 힘들 것입니다. 기본 테스트를 간결하게 만드는 프레임 워크를 활용하는 것이 더 좋은 방법입니다 (예 : @ wizard-of-ogz에서 언급 한대로). – Nick