2011-04-20 163 views
4

我在使用Rspec 1.3的rails 2.3.8应用程序中设置水豚(0.4.1.2)时遇到了一些麻烦从安装水豚指令我插入了行:安装Capybara for Rails 2.3和Rspec

require 'capybara/rspec' 

但是,这给了我一个不断的错误。似乎它正在寻找一个没有加载的类“RSpec”(我猜这是一个RSpec 2/Rails 3的东西)。

那么如何让Rspec在rails 2.3下识别水豚?我应该使用较早版本的capy?

PS。这里的回溯的一个片段:

/Users/rafe/.rvm/gems/[email protected]/gems/activesupport-2.3.5/lib/active_support/dependencies.rb|443| in `load_missing_constant': uninitialized constant RSpec (NameError) 

/Users/rafe/.rvm/gems/[email protected]/gems/activesupport-2.3.5/lib/active_support/dependencies.rb|80| in `const_missing_not_from_s3_library' 

/Users/rafe/.rvm/gems/[email protected]/gems/aws-s3-0.6.2/lib/aws/s3/extensions.rb|206| in `const_missing' 

/Users/rafe/.rvm/gems/[email protected]/gems/activesupport-2.3.5/lib/active_support/dependencies.rb|92| in `const_missing' 

|| from /Users/rafe/.rvm/gems/[email protected]/gems/capybara-0.4.1.2/lib/capybara/rspec.rb:4 


/Users/rafe/.rvm/gems/[email protected]/gems/rails-2.3.5/lib/rails/gem_dependency.rb|119| Warning: Gem::Dependency#version_requirements is deprecated and will be removed on or after August 2010. Use #requirement 

/Users/rafe/.rvm/gems/[email protected]/gems/activesupport-2.3.5/lib/active_support/dependencies.rb|443| in `load_missing_constant': uninitialized constant RSpec (NameError) 

/Users/rafe/.rvm/gems/[email protected]/gems/activesupport-2.3.5/lib/active_support/dependencies.rb|80| in `const_missing_not_from_s3_library' 

/Users/rafe/.rvm/gems/[email protected]/gems/aws-s3-0.6.2/lib/aws/s3/extensions.rb|206| in `const_missing' 

/Users/rafe/.rvm/gems/[email protected]/gems/activesupport-2.3.5/lib/active_support/dependencies.rb|92| in `const_missing' 

| from /Users/rafe/.rvm/gems/[email protected]/gems/capybara-0.4.1.2/lib/capybara/rspec.rb:4 

/Users/rafe/.rvm/rubies/ruby-1.8.6-p399/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb|31| in `gem_original_require' 

/Users/rafe/.rvm/rubies/ruby-1.8.6-p399/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb|31| in `require' 

/Users/rafe/.rvm/gems/[email protected]/gems/activesupport-2.3.5/lib/active_support/dependencies.rb|158| in `require' 

|| from /Users/rafe/cmi/lci/branches/forums/spec/spec_helper.rb:12 

回答

5

水豚没有内置的支持RSpec的1.x的但是,您可以使用Steak而不是滚动您自己的RSpec支持。

3

从水豚DOC,

Note that Capybara’s built in RSpec support only works with RSpec 2.0 or later. You’ll need to roll your own for earlier versions of RSpec.

5

如果你只是想要做'请求规范'(就像在railscasts的“我如何测试”中定义的那样),它似乎并不是真的需要牛排。 另见:What does Steak add beyond just using Capybara and RSpec in Rails testing?

我刚刚建立了轨2.3 + rspec的1个+水豚(最新版本),在这里和那里没有任何麻烦

你不能有require capybara/rspec,但似乎一切确实是添加一些匹配器......但真正重要的是水豚和DSL和验证的东西

水豚可与任何机架应用

spec_helper.rb

require 'capybara/rails' 
include Capybara::DSL 

,这就是它 (正好砸在文档的水豚,它的DSL因为一些RSpec中,水豚的匹配可能会丢失,没有什么会被阻挡,寿)

+0

我收到此错误:未初始化的常量水豚:: DSL(NameError) – RAJ 2012-07-24 11:50:48

+1

我建议在你的spec_helper.rb上进行一些调试... 我认为这可能是因为我们已经在这个rails 2.3项目上使用了bundler,所以Bundler可能会要求水豚自动为我... 看看Capybara文档,看看哪些文件需要水豚/ dsl,也许'需要'capybara''顶部spec_helper.rb wil我做的诀窍 – 2012-07-25 15:11:03

+1

这对我来说很好,谢谢 – 2012-10-08 20:51:11