2010-08-23 10 views
9

quando ho eseguito i miei lineamenti ottengo questo errore:metodi Webrat non definite in step_definitions cetriolo

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

Questa è la parte rilevante della mia 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 

Lo step_definition relativo (anche se non credo che sia importante)

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 

Nel env.rb ho la seguente configurazione 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 
# […] 

qualche cosa che mi manca Qui?

+0

Wow ... dal momento che ho appena ricevuto un distintivo di domande frequenti per questo, mi sembra che questo non sia stato ancora corretto. Verificherò più tardi ... –

risposta

16

ho dovuto impostare config.mode a :rack invece di :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 
# […] 

ora funziona come previsto.

+5

Nel caso in cui la gente non lo sappia, deve essere modificato in features/support/env.rb –

+2

Questa soluzione ha funzionato per me ... Tuttavia, perché è necessario? Penserei che il generatore di rotaie dovrebbe generare la cosa giusta, sia che si tratti di una modalità di: rails (che il [readme di webrat] (https://github.com/brynary/webrat#readme) sembra dire è la cosa giusta, a proposito) o di: rack ... Ma questo sembra non essere il caso. Qualcuno sa perché? – lindes

+0

Grazie mille, era un problema così fastidioso. – Denis

1

Paul Nelligan provare ad aggiungere questo per env.rb per correggere l'errore: "No such file da caricare - action_controller/integrazione"

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

Ho anche incontrato questo errore in due diverse occasioni: il in primo luogo, la regolazione di confg.mode ha risolto il problema; la seconda volta, tuttavia, dopo un sacco di frustrazione ho trovato un link che suggeriva una versione buggy di bundler potrebbe essere il colpevole. L'aggiornamento ha risolto il problema.

Problemi correlati