4

Rails2.3.8アプリでRspec1.3を使用してcapybara(0.4.1.2)をセットアップする際に問題が発生しました。capybaraのインストール手順から、次の行を挿入しました。

require 'capybara/rspec' 

しかし、それは私に行方不明の定数エラーを与えます。ロードされていないクラス「RSpec」を探しているようです(これはRSpec 2 / Rails 3のものだと思います)。

では、Rspecにレール2.3の下でカピバラを認識させるにはどうすればよいですか?以前のバージョンのcapyを使用する必要がありますか?

PS。バックトレースのスニペットは次のとおりです。

/Users/rafe/.rvm/gems/ruby-1.8.6-p399@lci/gems/activesupport-2.3.5/lib/active_support/dependencies.rb|443| in `load_missing_constant': uninitialized constant RSpec (NameError)

/Users/rafe/.rvm/gems/ruby-1.8.6-p399@lci/gems/activesupport-2.3.5/lib/active_support/dependencies.rb|80| in `const_missing_not_from_s3_library'

/Users/rafe/.rvm/gems/ruby-1.8.6-p399@lci/gems/aws-s3-0.6.2/lib/aws/s3/extensions.rb|206| in `const_missing'

/Users/rafe/.rvm/gems/ruby-1.8.6-p399@lci/gems/activesupport-2.3.5/lib/active_support/dependencies.rb|92| in `const_missing'

||  from /Users/rafe/.rvm/gems/ruby-1.8.6-p399@lci/gems/capybara-0.4.1.2/lib/capybara/rspec.rb:4


/Users/rafe/.rvm/gems/ruby-1.8.6-p399@lci/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/ruby-1.8.6-p399@lci/gems/activesupport-2.3.5/lib/active_support/dependencies.rb|443| in `load_missing_constant': uninitialized constant RSpec (NameError)

/Users/rafe/.rvm/gems/ruby-1.8.6-p399@lci/gems/activesupport-2.3.5/lib/active_support/dependencies.rb|80| in `const_missing_not_from_s3_library'

/Users/rafe/.rvm/gems/ruby-1.8.6-p399@lci/gems/aws-s3-0.6.2/lib/aws/s3/extensions.rb|206| in `const_missing'

/Users/rafe/.rvm/gems/ruby-1.8.6-p399@lci/gems/activesupport-2.3.5/lib/active_support/dependencies.rb|92| in `const_missing'

|   from /Users/rafe/.rvm/gems/ruby-1.8.6-p399@lci/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/ruby-1.8.6-p399@lci/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
4

3 に答える 3

5

Capybaraには、RSpec1.xのサポートが組み込まれていません。ただし、独自のRSpecサポートをロールする代わりにSteakを使用できます。

于 2011-06-06T16:24:52.910 に答える
5

たとえば、「スペックのリクエスト」(railscastsの「テスト方法」で定義されている)を実行したいだけの場合は、ステーキは実際には必要ないようです。また、参照してください:RailsテストでCapybaraとRSpecを使用するだけでなく、Steakは何を追加しますか?

ここにレール2.3+rspec 1 + capybara(最新バージョン)を設定しましたが、面倒なことはありませんでした

あなたは持つことはできませんがrequire capybara/rspec、それはいくつかのマッチャーを追加することだけのようです...しかし本当に重要なのはカピバラとそのDSLと検証のものです

カピバラはどのラックアプリでも動作します

私にspec_helper.rb

require 'capybara/rails'
include Capybara::DSL

それだけです(一部のrspec-capybaraマッチャーが欠落している可能性があるため、Capybaraのドキュメントにアクセスしてください。何もブロックされません)

于 2012-07-23T13:40:54.093 に答える
3

カピバラのドキュメントから、

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.

于 2011-05-03T20:35:15.627 に答える