0

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

4

3 回答 3

3

您的代码不起作用,因为相反:

it { page.should have_field("password") }

你应该使用

specify { page.should have_field("password") }

或者

it { should have_field("password") }

于 2012-12-02T06:43:13.427 回答
1

在这里,作为对我自己的回复,我已经解决了这个问题,在规范中明确使用 :type => :password 。

于 2012-12-31T21:53:55.420 回答
0

尝试替换have_fieldhave_selector.

于 2012-09-17T22:37:48.520 回答