3
나는 인해에Rspec 및 FactoryGirl을 사용하여 목록을 만들 때 유효성 검사에 실패 했습니까?
Secret#last_five returns the last 5 secrets when last_five is called
Failure/Error: let!(:secrets){create_list(:secret, 5)}
ActiveRecord::RecordInvalid:
Validation failed: Email has already been taken
오류를 실패하는 테스트를하고 난 그것을 해결하는 방법을 확실입니다. user_factory.rb 여기
FactoryGirl.define do
factory :secret do
title "Title"
body "this is the body"
author
end
end
됩니다 :
FactoryGirl.define do
factory :user, aliases: [:author] do
name "Foobar"
email Faker::Internet.safe_email
password "password"
password_confirmation "password"
end
end
내가 여기
describe Secret do
describe "#last_five" do
let!(:secrets){create_list(:secret, 5)}
it "returns the last 5 secrets when last_five is called" do
expect(Secret.last_five.count).to eq(5)
end
end
end
가 secret_factory.rb입니다 : 여기
는 secret_spec.rb의 테스트입니다 임의의 전자 메일 주소를 생성하고 사용자 팩토리가 전자 메일을 사용하는 유일한 곳이므로 전자 메일을받는 방법은 혼란 스럽습니다. 이미 찍은 메일.
도움 주셔서 감사합니다.
게시 한 것으로 분명하지 않음. 디버깅이 필요합니다. 테스트 데이터베이스를 다시 빌드하고 차이가 있는지 확인하십시오. 문제를 일으키는 최소 비밀/사용자 수를 찾습니다. 불만을 제기하는 이메일과 데이터베이스에있는 이메일을 인쇄하는 사용자에게 수동 검증을 추가하십시오. –