使用Capybara和Rspec视图规范

时间:2015-09-18 13:52:57

标签: ruby-on-rails rspec capybara

根据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.rbgem 'capybara'位于Gemfile。我错过了一些明显的东西吗?

1 个答案:

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