2010-08-23 52 views
9

運行我的功能,我得到這個錯誤:未定義webrat方法

undefined method `visit' for #<Cucumber::Rails::World:0x81b17ac0> (NoMethodError) 

這是我Gemfile的相關部分。

group :development, :test do 
    gem "rspec-rails", ">= 2.0.0.beta.19" 
    gem "cucumber" 
    gem "cucumber-rails", ">= 0.3.2" 
    gem 'webrat', ">= 0.7.2.beta.1" 
end 

的有關step_definition(雖然我不認爲這是很重要的)

When /^I create a movie Caddyshack in the Comendy genre$/ do 
    visit movies_path 
    click_link "Add Movie" 
    fill_in "Title", :with => "Caddyshack" 
    check "Comedy" 
    click_button "Save" 
end 

在env.rb我有以下Webrat配置:

# […] 
require 'webrat' 
require 'webrat/core/matchers' 

Webrat.configure do |config| 
    config.mode = :rails 
    config.open_error_files = false # Set to true if you want error pages to pop up in the browser 
end 
# […] 

什麼我很想念這裏?

+0

哇...因爲我剛剛得到了這個問題的流行問題徽章,在我看來這還沒有修補。稍後會檢查出... – 2011-05-18 13:04:51

回答

16

我必須設置config.mode:rack,而不是:rails

# […] 
require 'webrat' 
require 'webrat/core/matchers' 

Webrat.configure do |config| 
    config.mode = :rack 
    config.open_error_files = false # Set to true if you want error pages to pop up in the browser 
end 
# […] 

現在將按預期。

+5

如果用戶不知道這是要在features/support/env.rb – 2010-12-31 09:00:52

+2

中編輯此解決方案適用於我......但是,它爲什麼需要?我認爲rails生成器應該生成正確的東西,無論這是一種模式:rails(其中[webrat readme](https://github.com/brynary/webrat#readme)似乎是正確的)順便說一下)或者:機架......但是這似乎並非如此。有誰知道爲什麼? – lindes 2011-03-02 07:35:21

+0

非常感謝你,這是一個令人討厭的問題。 – Denis 2011-04-06 08:56:19

1

保羅利根嘗試添加這env.rb來修復錯誤:「沒有這樣的文件來加載 - action_controller /集成」

World(Webrat::Methods) 
World(Webrat::Matchers) 
1

我也遇到過在兩個不同場合此錯誤:首先對confg.mode的調整解決了問題;但是,第二次,在經歷了很多挫折之後,我發現了一個鏈接,提示捆綁軟件的錯誤版本可能是罪魁禍首。更新它解決了這個問題。