Rails 3 Cucumber / Webrat在简单的“给定”上失败了:我设置错了什么?

时间:2010-12-29 04:43:37

标签: cucumber ruby-on-rails-3 webrat

我的专题文件:

Feature: home page links

  Background: I am on the home page
    Given I am on the home page

  Scenario: I visit the about page
    When I follow "About"
    Then I should be on the about page

在我的paths.rb中,我有

when /the home\s?page/ then root_path

和rake路线给出:

    root  /(.:format)         {:controller=>"home", :action=>"home"}

当我尝试运行“bundle exec cucumber”时,我收到消息:

undefined local variable or method `controller' for #<HomeController:0xb29583c> (ActionView::Template::Error)
<a lot of crap>
./features/step_definitions/web_steps.rb:16:in `/^(?:|I )am on (.+)$/'
features/home_page.feature:4:in `Given I am on the home page'

Failing Scenarios:
cucumber features/home_page.feature:6 # Scenario: I visit the about page

这是一个微不足道的测试,但我不知道从哪里开始调查这个失败。有任何想法吗?感谢。


另外,我的Gemfile:

source :rubygems

gem "rails", "~>3.0"
gem "haml", "~>3.0"

group :test do
  gem 'cucumber'
  gem 'cucumber-rails'
  gem 'nokogiri'
  gem 'webrat'
end

group :development do
  gem "rspec-rails", "~>2.0.pre"
  gem "heroku"
  gem "will_paginate", "~>3.0.pre2"
end

2 个答案:

答案 0 :(得分:0)

我再也找不到警告了,但我认为Capybara gem现在推荐用于Rails3上的Cucumber。

好的,经过一些搜索后,它可能会正常工作,但请查看评论here。问题与你的问题不完全相同,但它可能是相关的。

答案 1 :(得分:0)

实际上,我曾经遇到过同样的问题。我认为Cucumber负责但看得更近,似乎错误在于你的观点:ActionView::Template::Error

Cucumber使用测试数据库,如果您的主页需要种子,则不会加载它们。

在你的情况下,似乎你写了一个被误解的controller,可能在输入类似params[controller]

的时候