2010-08-23 4 views
9

Quand je lance mes fonctions je reçois cette erreur:méthodes non définies de Webrat dans step_definitions de concombre

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

C'est la partie pertinente de mon 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 

Le step_definition relatif (bien que je ne pense pas qu'il est important)

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 

Dans le env.rb j'ai la configuration Webrat suivante:

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

Tout ce que je suis absent ici?

+0

Wow ... depuis que je viens d'avoir un badge de questions populaire pour celui-ci, il me semble qu'il n'a pas encore été corrigé. Va vérifier cela plus tard ... –

Répondre

16

je dû mettre config.mode à :rack au lieu de :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 
# […] 

fonctionne maintenant comme prévu.

+5

Dans le cas où les gens ne savent pas cela doit être édité dans features/support/env.rb –

+2

Cette solution a fonctionné pour moi ... Cependant, pourquoi est-il nécessaire? Je pense que le générateur de rails devrait générer la bonne chose, que ce soit un mode de: rails (que le [readme webrat] (https://github.com/brynary/webrat#readme) semble dire est la bonne chose, en passant) ou de: rack ... Mais cela ne semble pas être le cas. Quelqu'un sait-il pourquoi? – lindes

+0

Merci beaucoup, c'était un problème tellement ennuyeux. – Denis

1

Paul Nelligan essayez d'ajouter ceci à env.rb pour corriger l'erreur: « pas de fichier à charger - action_controller/intégration »

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

J'ai aussi rencontré cette erreur à deux reprises: la première instance l'ajustement à confg.mode a résolu le problème; la deuxième fois, cependant, après beaucoup de frustration, j'ai trouvé un lien qui a suggéré une version buggy de bundler pourrait être le coupable. La mise à jour a résolu le problème.

Questions connexes