Неопределенные методы webrat в огуречном step_definitions - PullRequest
9 голосов
/ 23 августа 2010

Когда я запускаю свои функции, я получаю эту ошибку:

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

Относительное определение шага (хотя я не думаю, что это важно)

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

Что-нибудь, что мне здесь не хватает?

Ответы [ 3 ]

16 голосов
/ 23 августа 2010

Мне пришлось установить 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
# […]

теперь работает как положено.

1 голос
/ 22 января 2011

Я также сталкивался с этой ошибкой в ​​двух отдельных случаях: во-первых, корректировка confg.mode решила проблему; во второй раз, однако, после большого разочарования я нашел ссылку, которая предположила, что виновной может быть ошибочная версия пакета. Обновление решило проблему.

1 голос
/ 08 октября 2010

Пол Неллиган, попробуйте добавить это в env.rb, чтобы исправить ошибку: "нет такого файла для загрузки - action_controller / интеграции"

World(Webrat::Methods)
World(Webrat::Matchers)
...