古い不器用なアプリケーションを Rails 3.1 にアップグレード中です。同社は受け入れテストに RSpec と Capybara を使用しています。spec/acceptance
次のメッセージで失敗しているいくつかの受け入れテストがあります。
Failure/Error: get @url
NoMethodError:
undefined method `get' for #<RSpec::Core::ExampleGroup::Nested_1::Nested_1:0x007feb7c0abf58>
テストの 1 つの例を次に示します (ファイルの先頭から)。
require_relative 'acceptance_helper'
feature 'Catalog' do
before do
Settings.use_catalog_navigation = true
end
context 'with a Vendor' do
before do
@vendor = create(:vendor, slug: 'abc')
@product = create(:product_with_variants, vendor: @vendor)
@non_vendor_product = create(:product_with_variants)
@invisible_product = create(:product_with_variants,
vendor: @vendor,
visible: false)
@non_available_product = create(:product_with_variants,
vendor: @vendor,
available: false)
@url = "/#{@vendor.slug}"
end
it 'sets @vendor' do # <- FIRST FAILING TEST
get @url
assigns(:vendor).should == @vendor
end
...
オラクルに相談すると、次のような「訪問」方法に言及している問題に遭遇し続けます: https://github.com/jnicklas/capybara/issues/814
また、この記事に関連する投稿に出くわすこともあります: http://alindeman.github.com/2012/11/11/rspec-rails-and-capybara-2.0-what-you-need-to-know.html
私は同じ問題を抱えているかどうかわかりません。私は投稿することができspec_helper.rb
、acceptance_helper.rb
それらが役立つかどうか.
rspec-rails と capybara を更新する前に、これらの仕様が合格したことは注目に値すると思います。
私の直感では、おそらく rspec-rails がカピバラのメソッドの一部を破壊しているか、カピバラのメソッドの一部がロードされていないだけです。それが問題でしょうか?