Rails Cucumber 测试 - 将表单数据发送到方法

Rails Cucumber Testing - Send form data to method

我正在尝试将表单数据从黄瓜测试发送到控制器方法。

我有一个带有登录名和密码字段的表单,以及提交按钮。
表单查看:

<%= text_field_tag 'login', id: 'login-input' %>
<%= password_field_tag 'password', nil, id: 'password-input' %>
<%= submit_tag 'Login', id: 'submit-credentials' %>

在黄瓜步骤中,我以该形式输入值(未显示登录字段,但类似)。

Then(/^I press "password-input"$/) do
  find("#password-input").click
end
Then(/^I enter "myPassword" into the "password-input"$/) do
  find("#password-input").text("myPassword")
end

现在登录名和密码值已设置。

然后我按下提交按钮

And(/^I press "submit-credentials"$/) do
  find("#submit-credentials").click()
end

并且我的身份验证方法被调用但是它的参数是空的

当我在网页上正常输入值时,一切正常。为什么黄瓜版本不行?

我的黄瓜步骤都通过了!!所以我很困惑

如何将数据从文本字段发送到控制器方法?

谢谢

有几种方法可以interact with forms in Capybara

尝试使用

Then(/^I enter "myPassword" into the "password-input"$/) do
    find("#password-input").set("myPassword")
end

而不是

Then(/^I press "password-input"$/) do
    find("#password-input").click
end
Then(/^I enter "myPassword" into the "password-input"$/) do
    find("#password-input").text("myPassword")
end