检查Capybara是否存在输入字段

时间:2014-01-29 08:39:30

标签: ruby-on-rails rspec capybara rspec-rails

假设我有以下表格字段:

<%= simple_form_for @page do |f| %>
  <%= f.input :name, label: false, placeholder: "Name" %>
  <%= f.button :submit %>
<% end %>

我如何测试它的存在?

以下说没有找到匹配项:

it { should have_field("name")}

还尝试了"page[name]",这是HTML中字段的名称,但是RSpec给了我这个错误:

it { should matcher }

RSpec expects the matcher to have a #description method. You should either add a String to the example this matcher is being used in, or give it a description method. Then you won't have to suffer this lengthy warning again.

是方括号导致这个吗?提前谢谢。

2 个答案:

答案 0 :(得分:1)

提供该页面是一个主题:

it { should have_selector("form input[name='page[name]']") }

答案 1 :(得分:1)

该消息所说的是您缺少该示例的描述字符串,这是因为您只有it { should have_field("name")}

按如下方式更新您的示例:

it 'has name input field' { should have_field("page[name]")} 

如果您有多个可能属于同一组的示例,则可以describe使用it作为:

describe 'Page form' do 
  it 'has name input field' { should have_field("page[name]")} 
  it ... { ... }
end

有关使用RSpec的其他建议最佳做法,请参阅Better Specs