在运行我的 rspec 测试时,我收到错误
Capybara::ElementNotFound:无法找到字段“名字”
我的rspec测试如下
describe "with valid information" do
before do
puts page.body
fill_in "First Name", with: "Matthew"
fill_in "Email", with: "[email protected] /cdn-cgi/l/email-protection"
fill_in "Password", with: "foobar"
end
it "should create a user" do
expect { click_button submit }.to change(User, :count).by(1)
end
end
我的表单视图是这样的
<%= form_for(@user) do |f| %>
<%= f.label :first_name %>
<%= f.text_field :first_name %>
<%= f.label :email %>
<%= f.text_field :email %>
<%= f.label :password %>
<%= f.password_field :password %>
<%= f.submit "Create my account", class: "btn btn-large btn-primary" %>
<% end %>
所以经过几个小时的猛烈抨击之后,我尝试更换
fill_in "First Name", with: "Matthew"
with
fill_in "user_first_name", with: "Matthew"
(即使用字段 ID 而不是名称)
我的问题是为什么这只适用于字段 id ('user_first_name') 而不是字段名称 ('First Name')?
Rails 使用human_attribute_name
method http://apidock.com/rails/ActiveModel/Translation/human_attribute_name执行此操作时输出标签文本f.label :first_name
.
这意味着标签的文本是“名字”,而不是“名字”,所以这就是您需要提供给水豚的内容。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)