Ruby 水豚:背对背表单提交

Ruby 水豚:背对背表单提交,ruby,ruby-on-rails-3,selenium,cucumber,capybara,Ruby,Ruby On Rails 3,Selenium,Cucumber,Capybara,我正在使用capybara编写测试用例。我的代码流程如下 before :each do @user = User.create(:login => "test", :password => "123456", :email => "test@email.com", :status => true) visit '/users/sign_in' fill_in "user[email]", :with => @

我正在使用capybara编写测试用例。我的代码流程如下

before :each do
      @user = User.create(:login => "test", :password => "123456", :email => "test@email.com", :status => true)          
      visit '/users/sign_in'
      fill_in "user[email]", :with => @user.login
      fill_in "user[password]", :with => @user.password
      click_button "LOGIN"
      choose("gender")
      click_button "PROCEED"
    end

    after :each do
      visit "/logout"
    end

    it "signs me in to D360" do
      current_path.should eq('/')
    end 
1) 用户登录并重定向至选择性别页面(性别为单选按钮)

2) 选择性别并单击“继续”后,用户应重定向到主页

3) 在未选择任何性别并单击“继续”时,用户应重定向到同一页面

我正在rails中使用capybara为此编写测试用例

我的测试用例如下

before :each do
      @user = User.create(:login => "test", :password => "123456", :email => "test@email.com", :status => true)          
      visit '/users/sign_in'
      fill_in "user[email]", :with => @user.login
      fill_in "user[password]", :with => @user.password
      click_button "LOGIN"
      choose("gender")
      click_button "PROCEED"
    end

    after :each do
      visit "/logout"
    end

    it "signs me in to D360" do
      current_path.should eq('/')
    end 

我在提交第二个表单时添加了一个puts语句,我发现它被打印了两次。当我检查referer时,请求似乎来自两个不同的页面,一个来自登录页面,另一个来自选择性别页面。我不明白它为什么会这样工作。在capybara中应该有一些用于背对背表单提交的东西,我做错了,我无法理解。

您确定用户确实正在登录吗?您使用
user.login
的值填写了
user[email]
。是的,用户可以使用email登录,也可以同时登录。所以这其实不是问题。