Интеграция из_интеграции в Railstutorial, глава 9, упражнения не работают - PullRequest
0 голосов
/ 13 января 2012

Я изучаю rais из учебника по рельсам: http://ruby.railstutorial.org/chapters/sign-in-sign-out#fnref:9.14

Я работаю над упражнением.Назначение - создать метод входа в spec helper, чтобы его можно было использовать в интеграционных тестах.Он уже дал код:

def integration_sign_in(user)
    visit signin_path
    fill_in :email,    :with => user.email
    fill_in :password, :with => user.password
    click_button
  end

Итак, в моем интеграционном тесте layout_links_spec.rb я планирую его использовать.

before(:each) do
      @user = Factory(:user)
      visit signin_path
      fill_in :email,    :with => @user.email
      fill_in :password, :with => @user.password
      click_button
      # integration_sign_in(Factory(:user))
    end

Я все комментирую и использую integration_sign_in(Factory(:user)).Я получаю ошибку:

ActiveRecord::RecordInvalid:
       Validation failed: Email has already been taken

Однако, если я использую оригинал, который выглядит так же, как функция integra_sign_in, тесты пройдены.Может кто-нибудь дать объяснение, пожалуйста?

Спасибо.

1 Ответ

1 голос
/ 13 января 2012

Похоже на ваше: фабрика пользователей возвращает один и тот же адрес электронной почты каждый раз, когда создает пользователя.Поскольку у вас есть before (: each), он будет создавать и вставлять в БД более одного пользователя, и все они будут иметь один и тот же адрес электронной почты.

Если вы отправите свой завод, мы, вероятно, сможем настроить его наиспользуйте последовательность или найдите альтернативное решение.

...