Создание теста Rspec для email_uniqueness_index в Rails - PullRequest
1 голос
/ 03 декабря 2011

Как мне написать тест Rspec для следующего? Используя TDD, я хочу иметь возможность написать тест, для которого требуется следующий код для прохождения.

class AddEmailUniquenessIndex < ActiveRecord::Migration
  def up
    add_index :users, :email, :unqiue => true
  end

  def down
    remove_index :users, :email
  end
end

1 Ответ

3 голосов
/ 03 декабря 2011

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

it "prevents duplicates" do
  user1 = create(:user, email: 'unique@email.com')
  user2 = build(:user, email: 'unique@email.com')

  user1.should be_valid
  user2.should_not have_valid(:email)
end

Обратите внимание, что я использую драгоценные камни factory_girl и valid_attribute в примере выше. Я также предполагаю, что в вашей модели validates :email, uniqueness: true.

...