当我成立了一个新的Rails 3.1.3项目,并写了黄瓜故事Webrat代码,就像这样:未定义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
- {{编辑的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”添加到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
耙0.9.2。2
有关如何解决此问题的任何提示?