Gle*_*ita 18 rspec capybara rspec-rails ruby-on-rails-3.2
我刚刚将我的Capybara Gem从版本1升级到2.1.0(最新版).基于Capybara自述文件,我将以下几行添加到Spork.prefork块中的spec_helper.rb
require 'capybara/rspec'
require 'capybara/rails'
Run Code Online (Sandbox Code Playgroud)
但是,我收到了一个错误
/home/user_1/.rvm/gems/ruby-1.9.3-p392/gems/capybara-2.1.0/lib/capybara/rails.rb:6:in `block (2 levels) in <top (required)>': uninitialized constant Rails (NameError)
Run Code Online (Sandbox Code Playgroud)
我是否因为水豚的工作正常而错过了什么?
bow*_*ior 18
确保首先需要'rspec/rails':
require 'rspec/rails'
require 'capybara/rspec'
require 'capybara/rails'
Run Code Online (Sandbox Code Playgroud)
如果您首先需要'capybara/rails',您将收到该错误.
在spec_helper.rb文件中,可能会因添加require 'capybara/rails'文件代码顶部的行而导致此错误.
相反,如果您查看自动生成的spec_helper.rb文件的一半,您将看到如下内容:
ENV["RAILS_ENV"] ||= 'test'
require File.expand_path("../../config/environment", __FILE__)
require 'rspec/rails'
require 'rspec/autorun'
Run Code Online (Sandbox Code Playgroud)
require 'capybara/rails'在这些行之后添加行,使其看起来像:
ENV["RAILS_ENV"] ||= 'test'
require File.expand_path("../../config/environment", __FILE__)
require 'rspec/rails'
require 'rspec/autorun'
require 'capybara/rails' #######
Run Code Online (Sandbox Code Playgroud)
(你不需要哈希,那只是为了突出插入位置)
希望这可以帮助你或其他人...