2011-12-15 1 views
2

Когда я создал новый проект рельсы 3.1.3 и написать историю огурца с Webrat кода, как это:методы Неопределенное Webrat в Огурец

response.should contain("abc") 

и я бегу rake cucumber, я получаю:

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

Я считаю, что либо огурцы, либо 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
  • {{Edit Gemfile включить 'огурца рельсы', 'Webrat' и 'database_cleaner' без номера версии}}
  • bundle install
  • rails g cucumber:install
  • rails g controller genres index
  • добавить "resources: genres" to routes.rb
  • {{рельсы s и http://localhost:3000/genres работы в настоящее время}}
  • Создать /features/create_movie.feature с содержимым:

Feature: Create movie

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 с содержимым:

Given /^a genre named Comedy$/ do end

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 

  • rake cucumber
  • Не удалось выполнить приведенную выше ошибку.
  • различные предложения в Интернет не работает (например Undefined webrat methods in cucumber step_definitions)
  • Мои версии:

рельсы 3.1.3
огурца 1.1.4
огурца рельсы 1.2.1
Webrat 0.7. 3
стойка 1.3.5
rake 0.9.2.2

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

ответ

2

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

Вместо этого вам нужно использовать has_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