0
我學習賴斯:http://ruby.railstutorial.org/chapters/sign-in-sign-out#fnref:9.14integration_sign_up在railstutorial第9章的練習不會從軌道教程書工作
我在鍛鍊的工作。這個任務是在spec幫助器中創建一個登錄方法,以便它可以在集成測試中使用。他已經給出了代碼:
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
但是,如果我用這看起來很相似,integration_sign_in功能原來,測試通過。有人可以提供解釋嗎?
謝謝。
啊。完美的解釋我的factories.rb是這樣的:Factory.define:user do | user | user.name 「邁克爾·哈特爾」 user.email 「[email protected]」 user.password的 「foobar的」 user.password_confirmation 「foobar的」 結束 – okysabeni 2012-01-13 18:00:38
您更改user.email 「[email protected]」 到f 。序列(:email){| n | 「foo#{n}@example.com」} – Webjedi 2012-01-13 18:07:02
謝謝Webjedi! – okysabeni 2012-01-13 18:18:54