无法设置Rspec的&豚Rails中3.2(Unable to setup Rspec & Capy

2019-07-17 13:30发布

我创建RSpec的测试示例应用程序,我跟着下面的步骤中的Gemfile:

gem "rspec-rails", :group => [:test, :development]
group :test do
  gem "factory_girl_rails"
  gem "capybara"
  gem "guard-rspec"
end

然后,执行下面的步骤:

  1. 束。
  2. 轨摹RSpec的:安装。
  3. MKDIR规格/支规格/型号投机/路由。

补充说:“需要水豚/ rspec的”我的spec_helper文件

创建为下面的样品测试:

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

但它不工作,提示以下错误:


undefined local variable or method `page' 

*我怀疑我是不是正确配置的水豚,让我知道,配置水豚的正确方法。

Answer 1:

既然你没有指定在你的Gemfile的水豚一个版本,我假设你已经有了版本>= 2.0 ,这意味着使用任何测试page应该在规范去下/ features目录。

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

  • RSpec的护栏和水豚2.0:你需要知道什么
  • RSpec的护栏宝石水豚页

如果你不希望使用规格/ features目录,你应该能够标记测试的feature在以下方式:

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


Answer 2:

包括水豚DSL符合规范帮手后得到工作

config.include Capybara::DSL


Answer 3:

它值得一试的新水豚DSL集成测试(请注意功能目录):

# spec/features/user_list_spec.rb
require 'spec_helper'

feature 'User list' do
  scenario 'List all users' do
    visit users_path
    expect(page).to have_content 'List Users'
  end
end

我写了一个博客帖子上发一些详细资料端至端测试使用RSpec集成测试和水豚用RSpec的2.0期望的语法,与水豚DSL沿着feature/scenarios



Answer 4:

你也可以只添加到您的spec_helper.rb:

require 'capybara/rspec'


文章来源: Unable to setup Rspec & Capybara in Rails 3.2