2010-08-23 8 views
9

Wenn ich betreibe meine Funktionen, die ich diesen Fehler:undefiniert webrat Methoden in Gurken step_definitions

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

Dies ist der relevante Teil meiner 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 

Die im Zusammenhang step_definition (obwohl ich glaube nicht, es ist wichtig)

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 

Im env.rb ich die folgende webrat Konfiguration haben:

# […] 
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 
# […] 

Alles, was ich bin fehlt Hier?

+0

Wow ... da ich gerade ein beliebtes Fragen-Abzeichen für dieses hier bekommen habe, scheint mir das noch nicht gepatcht worden zu sein. Werde das später überprüfen ... –

Antwort

16

Ich hatte config.mode zu :rack statt :rails zu setzen:

# […] 
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 
# […] 

funktioniert nun wie erwartet.

+5

Falls die Leute nicht wissen, dass das in features/support/env.rb editiert werden soll –

+2

Diese Lösung hat für mich funktioniert ... Warum ist es aber nötig? Ich würde denken, dass der Rails Generator das richtige Ding generieren sollte, ob das ein Modus von: rails ist (was die [webrat readme] (https://github.com/brynary/webrat#readme) zu sagen scheint, ist das Richtige, übrigens) oder von: rack ... Aber das scheint nicht der Fall zu sein. Weiß jemand warum? – lindes

+0

Vielen Dank, es war so ein nerviges Problem. – Denis

1

Paul Nelligan versuchen, diese Zugabe env.rb den Fehler zu beheben: „keine solche Datei laden - action_controller/Integration“

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

ich diesen Fehler auch bei zwei verschiedenen Gelegenheiten begegnet: die erste Instanz die Anpassung an confg.mode löste das Problem; das zweite Mal, nach einer Menge Frustration, fand ich einen Link, der darauf hinwies, dass eine Buggy-Version des Bundlers der Schuldige sein könnte. Das Aktualisieren hat das Problem gelöst.