0

古い不器用なアプリケーションを 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.rbacceptance_helper.rbそれらが役立つかどうか.

rspec-rails と capybara を更新する前に、これらの仕様が合格したことは注目に値すると思います。

私の直感では、おそらく rspec-rails がカピバラのメソッドの一部を破壊しているか、カピバラのメソッドの一部がロードされていないだけです。それが問題でしょうか?


script タグに ID を付けることはできますか?

<div id="example">
<script id="myScript">
  var myScript = document.getElementById('myScript');
  var myId = myScript.parentNode.id;
  alert(myId);
</script>
</div>

http://jsfiddle.net/abzLn/

4

1 に答える 1