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