根据this我认为我应该可以在我的Rspec视图规范中使用Capybara的has_field?匹配器:
RSpec.describe "teams/edit", type: :view do
let(:team) { FactoryGirl.create(:team, name: "Team") }
it "renders the edit team form" do
assign(:team, team)
render
expect(rendered).to has_field?("Name")
end
end
上述内容失败了:
Failure/Error: expect(rendered).to has_field?("Name")
NoMethodError:
undefined method `has_field?' for #<RSpec::ExampleGroups::TeamsEdit:0x007f9cd40c82a8>
我已将require 'capybara/rails'
添加到spec_helper.rb
,gem 'capybara'
位于Gemfile
。我错过了一些明显的东西吗?
答案 0 :(得分:2)
Capybara 2.5 rspec匹配器在视图规格中默认可用。如果使用2.5之前的版本,则可以添加
RSpec.configure do |config|
config.include Capybara::RSpecMatchers, :type => :view
end
到您的RSpec配置。
您将这些匹配器用作
expect(rendered).to have_field('Name')
注意使用have_field而不是has_field?