Неопределенные методы Webrat в Cucumber - PullRequest
2 голосов
/ 15 декабря 2011

Когда я настраиваю новый проект rails 3.1.3 и пишу историю о Cucumber с помощью кода Webrat, например:

response.should contain("abc")

, и я запускаю rake cucumber, я получаю:

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

Я считаю, что либо Cucumber, либо Webrat, либо Rails сломаны, потому что я вообще ничего особенного не сделал и придерживался документации.

Следующие шаги воспроизводят ошибку:

  • rvm 1.9.2
  • rails new testapp -d mysql
  • cd testapp
  • {{Edit database.yml}}
  • rake db:create
  • rake db:migrate
  • gem install cucumber-rails
  • gem install webrat
  • gem install database_cleaner
  • {{Изменить Gemfile, добавив огурцы-рельсы, webratи 'database_cleaner' без номеров версий}}
  • bundle install
  • rails g cucumber:install
  • rails g controller genres index
  • добавить «resources: genres» к маршрутам.rb
  • {{rails s и http://localhost:3000/genres работает сейчас}}
  • Создать /features/create_movie.feature с содержимым:

Feature: Create movie</p> <pre><code>Description Scenario: Create a movie in genre Given a genre named Comedy When I create a movie Caddyshack in the Comedy genre Then Caddyshack should be in the Comedy genre

  • Создание /features/step_definitions/movie_steps.rb с продолжениемents:

Given /^a genre named Comedy$/ do end</p> <pre><code>When /^I create a movie Caddyshack in the Comedy genre$/ do end Then /^Caddyshack should be in the Comedy genre$/ do visit genres_path response.should contain("abc") end

rails 3.1.3
огурец 1.1.4
огуречные рельсы 1.2.1
webrat 0.7.3
стойка 1.3.5
грабли 0.9.2.2

Любые подсказки о том, как решить эту проблему

Ответы [ 2 ]

2 голосов
/ 10 апреля 2012

Теперь по умолчанию огурец использует Capybary вместо Webrat.

Вместо этого вам нужно использовать have_content.

Правильный фрагмент ниже:

When /^I create a movie Caddyshack in the Comedy genre$/ do
end

Then /^Caddyshack should be in the Comedy genre$/ do
  visit genres_path
  response.should have_content("abc")
end
0 голосов
/ 16 декабря 2011

Я только что получил ответ от группы Google Cucumber (cukes):

Cucumber-Rails прекратил поддержку Webrat в v0.5.0.beta1 (см. https://github.com/cucumber/cucumber-rails/blob/master/History.md)

Вместо этого используйте капибару.

...