1
사용자 모델의 uniquness를 테스트하고 싶습니다. 내가 bundle exec rspec
를 실행 한 후 항상 다음 오류가 발생 대신에 통과rspec mongoid 유일성 검증
...
before(:each) do
FactoryGirl.create(:user, email: taken_mail)
end
it "with an already used email" do
expect(FactoryGirl.create(:user, email: taken_mail)).to_not be_valid
end
: 같은
이class User
include Mongoid::Document
field :email, type: String
embeds_one :details
validates :email,
presence: true,
uniqueness: true,
format: {
with: /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z0-9]{2,})\Z/i,
on: :create
},
length: { in: 6..50 }
end
모델에 속하는 내 RSpec에 테스트가 같습니다처럼
내 User
모델 클래스 보인다 성공 :
Failure/Error: expect(FactoryGirl.create(:user, email: taken_mail)).to_not be_valid
Mongoid::Errors::Validations:
Problem:
Validation of User failed.
Summary:
The following errors were found: Email is already taken
Resolution:
Try persisting the document with valid data or remove the validations.
성공과 함께 전달됩니다 :
it { should validate_uniqueness_of(:email) }
나는 expect(...)
을 사용하고 싶습니다. 아무도 나를 도울 수 있습니까?
다음을 시도해보십시오. '(FactoryGirl.build (: user, email : taken_mail)). to_not be_valid'? – Alireza
대신 build를 사용합니다. 제대로 작동하고 테스트가 통과되었지만'create' 메소드를 사용할 때 왜 에러가 발생하는지 알지 못합니다. 'FactoryGirl.create (...) '를 사용하려면 어떻게해야합니까? 대답에 남겨두면 그 점을 알려줍니다. – Mark