检查表单字段是否与have_field一起存在

时间:2012-09-17 11:48:09

标签: ruby-on-rails rspec capybara

我有一个简单的表格,用户(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是否是正确的匹配器,因为水豚文档没有解释它是什么。什么是测试表单字段是否存在的最佳方法?

3 个答案:

答案 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