Ruby on rails 3.2 无法设置Rspec&;Rails 3.2中的水豚

Ruby on rails 3.2 无法设置Rspec&;Rails 3.2中的水豚,ruby-on-rails-3.2,capybara,rspec-rails,Ruby On Rails 3.2,Capybara,Rspec Rails,我正在为rspec测试创建一个示例应用程序,并遵循以下步骤 在文件中: gem "rspec-rails", :group => [:test, :development] group :test do gem "factory_girl_rails" gem "capybara" gem "guard-rspec" end require 'spec_helper' describe "Users" do describe " List users" do it

我正在为rspec测试创建一个示例应用程序,并遵循以下步骤 在文件中:

gem "rspec-rails", :group => [:test, :development]
group :test do
  gem "factory_girl_rails"
  gem "capybara"
  gem "guard-rspec"
end
require 'spec_helper'
describe "Users" do
  describe " List users" do
    it "List all users" do
      get users_path
      page.has_content?('List Users')
    end
  end
end
然后执行以下步骤:

gem "rspec-rails", :group => [:test, :development]
group :test do
  gem "factory_girl_rails"
  gem "capybara"
  gem "guard-rspec"
end
require 'spec_helper'
describe "Users" do
  describe " List users" do
    it "List all users" do
      get users_path
      page.has_content?('List Users')
    end
  end
end
  • 导轨g rspec:安装
  • mkdir规格/支持规格/型号规格/布线
  • 将“需要水豚/rspec”添加到我的spec\u助手文件中

    创建了一个样本测试,如下所示:

    gem "rspec-rails", :group => [:test, :development]
    group :test do
      gem "factory_girl_rails"
      gem "capybara"
      gem "guard-rspec"
    end
    
    require 'spec_helper'
    describe "Users" do
      describe " List users" do
        it "List all users" do
          get users_path
          page.has_content?('List Users')
        end
      end
    end
    
    但它不起作用,得到下面的错误



    *我怀疑我没有正确配置capybara,请告诉我配置capybara的正确方法。

    在将capybara dsl包含到spec helper中后开始工作

    config.include Capybara::DSL
    

    由于您没有在Gemfile中指定Capybara的版本,我假设您的版本
    =2.0
    ,这意味着使用
    页面的任何测试都应该放在spec/features目录下

    有关更多信息,请查看以下链接:

    如果您不想使用spec/features目录,您应该能够通过以下方式将测试标记为
    功能

    require 'spec_helper'
    describe "Users" do
      describe " List users", type: :feature do
        it "List all users" do
          get users_path
          page.has_content?('List Users')
        end
      end
    end
    

    值得为集成测试检查新的Capybara DSL(注意功能目录):


    我写了一篇博客文章,详细介绍了如何使用RSpec 2.0 expect语法,以及适用于
    功能/场景的Capybara DSL

    您也可以将其添加到spec\u helper.rb中:

    require 'capybara/rspec'
    

    如果这是你的解决方案,请接受这个答案。我的意见是,为了符合Capybara 2.0和RSpec对spec/目录结构的期望,最好修改配置;查看我答案中的两个链接了解详细信息。从spec/requests->spec/features中移动我的测试文件对我很有用。访问时不再出现错误。谢谢