Подтвердить что ты не робот

Добавление индекса для столбца столбца для проверки единичных тестов

Я новичок в разработке и рельсах, и я просто интегрировал свое приложение с моим примером. Я заметил, что после создания модели пользователя все мои модульные тесты терпели неудачу. Я попытался сузить это и обнаружил, что даже сгенерированное утверждение "истина" для user_test.rb также терпит неудачу:

ActiveRecord::RecordNotUnique: SQLite3::ConstraintException: \
    column email is not unique: INSERT INTO "users" (...

Как только я прокомментировал add_index...

# add_index :users, :email, :unique => true

... и запустите rake db:test:load и повторите тесты с ruby -I test test/unit/user_test.rb, которые он передает.

Кто-нибудь еще испытывает это?

4b9b3361

Ответ 1

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

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

Этот инструмент пытается создать двух пользователей с тем же (неустойчивым) электронным письмом. Замените его:

one:
  email: [email protected]

two:
  email: [email protected]

Он исправит эту ошибку.

Ответ 2

Ошибка должна произойти в тестовой настройке до фактического теста. Вероятно, вы пытаетесь настроить пользователей с одинаковыми адресами электронной почты либо через приборы, либо на фабрики.

Если вы используете приборы, убедитесь, что каждому пользователю задан другой адрес электронной почты. Если вы используете фабрики, используйте последовательность для создания уникальных адресов электронной почты для каждого созданного пользователя.