이것은 간단해야하지만 작동하지 않는 이유를 알 수 없습니다. 더 많은 독창적 인 구조를 많이 보았습니다. 나는 유일한 색인이어야하는 란이있다. 필자는 모델에서 옵션을 테스트하기 위해 두 번 지정했지만 고유성 테스트는 계속 실패합니다.레일 4 모델 열의 고유하지 않음
모델 유효성 검사 코드 :
validates :feed_url, presence:true,
format: {with: VALID_URL_REGEX},
uniqueness: true
validates_uniqueness_of :feed_url
RSpec에 코드 :
before do
@feed = FactoryGirl.create(:feed)
end
...
describe "when URL is already taken" do
before do
feed_with_same_url = @feed.dup
feed_with_same_url.feed_url = @feed.feed_url
feed_with_same_url.save
end
it { should_not be_valid }
end
가 저장이 유효하지 말아야하지만 모델이이 분야가 동일한 경우에도 유효 말한다 때문에 테스트가 실패합니다. 나 자신을 브레이크 포인트에서 필드를 체크하고 정확히 같은 경우, 길이, 값, 등등입니다.
존재 여부 및 정규식 유효성 테스트가 완벽하게 작동하므로 모델이 작동합니다.
인덱스 대신 모델에서이 작업을 수행하려고합니다. 나는 지난 밤에 Rails 4가 데이터베이스 대신 코드에서 이러한 테스트를 선호한다는 것을 읽었지 만, 나는 그 소스를 오늘 밤에 찾을 수 없습니다. (?) 어느 쪽이든, 나는 모델이 작동하는지보고 싶습니다.
이 특별한 질문에 도움이되지는 않지만 시험에 도움이 될 수 있습니다. https://github.com/thoughtbot/shoulda- matchers – Benj
매우 흥미롭고 고맙습니다. 이 스레드를 통해 알 수 있듯이, 나는 지금 테스트 메소드에 약간 오버로드되어있다. 그러나 나중에 이것을 위해 가방에 저장하겠습니다. –