2014-02-01 3 views
3

я начал тестовую среду в моем рельсах приложение, и когда я проверить пользовательскую модель с кодом по умолчанию, он выдает следующее сообщение об ошибке:Rails тестирования ActiveRecord ошибка

Тестовый код:

test "the truth" do 
assert true 
end 

1) Error: 
UserTest#test_the_truth: 
ActiveRecord::RecordNotUnique: Mysql2::Error: Duplicate entry '' for key 'index_users_on_email': INSERT INTO `users` (`created_at`, `updated_at`, `id`) VALUES ('2014-02-01 17:45:51', '2014-02-01 17:45:51', 298486374) 

и в моей модели пользователя, у меня есть следующие ассоциации

devise :database_authenticatable, :registerable, 
    :recoverable, :rememberable, :trackable, :validatable 
validates :user_name , :email, :first_name ,:last_name , :presence => true 
has_many :invitations 
has_many :incoming_friends, -> { where(:status => '1') }, :class_name => "User", :foreign_key => "friend_id", :through => :invitations 
has_many :outgoing_friends, -> { where(:status => '1') }, :class_name => "User", :foreign_key => "user_id", :through => :invitations 

ответ

7

во-первых, проверьте пользователя модели светильника в испытания /fixtures/users.yml. Если у вас есть пустые декларации одного и два:

one: {} 
# column: value 
# 
two: {} 
# column: value 

это может вызвать проблемы, потому что есть недостаток атрибутов. Убрать эту часть или оставить комментарий:

#one: {} 
# column: value 
# 
#two: {} 
# column: value 

И попробуйте запустить его снова.

Смежные вопросы