簡體   English   中英

水豚驗收測試:#的未定義方法“訪問”

[英]Capybara Acceptance Tests: undefined method `visit' for #<RSpec::Core::ExampleGroup

我正在將舊的krufty應用程序升級到Rails 3.1。 該公司一直在使用RSpec和Capybara進行驗收測試。 我們已經按照spec/acceptance驗收進行了一些驗收測試,但失敗,並顯示以下消息:

Failure/Error: get @url
 NoMethodError:
   undefined method `get' for #<RSpec::Core::ExampleGroup::Nested_1::Nested_1:0x007feb7c0abf58>

這是其中一個測試的示例(從文件頂部開始):

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

    ...  

在咨詢oracle時,我總是在提到“訪問”方法的問題上絆腳石,例如: 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破壞了capybara的某些方法,或者只是不再加載某些capybara的方法。 這可能是問題嗎?

嘗試在config塊內的spec_helper.rb添加config.include Capybara::DSL spec_helper.rb config.include Capybara::DSL 像這樣:

RSpec.configure do |config|
  config.include Capybara::DSL

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM