我有一个简单的表格,用户(form_for @user)注册密码字段:
<div class="control-group">
<%= f.label :password, :class => 'control-label' %>
<div class="controls">
<%= f.password_field :password, :class => 'password_field' %>
</div>
</div>
在我的rspec / capybara测试中,我想检查此密码字段是否存在 我试试:
it {should have_field("password")}
但它不起作用。 与“user_password”相同(因为这是此密码字段ID)或“user [password]”(这是此字段名称)
不确定have_field是否是正确的匹配器,因为水豚文档没有解释它是什么。什么是测试表单字段是否存在的最佳方法?
答案 0 :(得分:3)
您的代码无效,因为:
it { page.should have_field("password") }
你应该使用
specify { page.should have_field("password") }
或
it { should have_field("password") }
答案 1 :(得分:1)
在这里,in reply to myself我已经解决了这个问题,明确使用:type =&gt; :规范中的密码。
答案 2 :(得分:0)
尝试将have_field
替换为have_selector
。