为什么我不能使用FactoryGirl.create(:user)填充登录表单?

时间:2013-05-22 16:41:23

标签: ruby-on-rails testing rspec capybara factory-bot

我正在尝试使用FactoryGirl,Rspec和Capybara测试登录表单。

我可以通过运行FactoryGirl.build(:user)来测试注册表单,但我无法使用FactoryGirl.create(:user)登录由Factory Girl创建的用户。这是我失败的测试:

it "logs in a factory girl user" do
      user = FactoryGirl.create(:user)
      visit login_path
      fill_in "Email",    :with => user.email
      fill_in "Password", :with => user.password
      check "Remember me"
      click_button "Log in"
      page.should have_content("Logged in!")
end

您似乎应该使用FactoryGirl.build(:user)来测试注册表单,但是您应该使用FactoryGirl.create(:user)将新用户保存到数据库,然后使用该用户测试登录过程。但由于某种原因,它无法从数据库中提取该用户并将其插入到表单中。如果我在save_and_open_page之后添加fill_in "Email" line,则电子邮件字段仍为空白。

这不是用Rspec和Factory Girl测试的正确方法吗?我想这样做,以便我可以作为普通用户和管理员用户登录,并使用capybara在浏览器中测试不同的功能。我是否需要创建一个实用工具方法,例如signup_and_login_user,我使用FactoryGirl.build(:user),然后使用capybara导航注册和登录表单。那么每次我需要在测试中登录用户时我都会使用这种方法吗?

0 个答案:

没有答案