黄瓜:rails动态找不到paths.rb

时间:2009-08-19 18:33:05

标签: ruby-on-rails find cucumber

我正在使用rspec,rspec-rails,黄瓜和webrat工作。 我正在尝试学习BDD和测试。 我有一个像这样的黄瓜场景:

  Scenario: Questions List
    Given quiz titled "Pearl Jam" has questions named "Corduroy, Dissident"
    When I go to the experiment page for quiz titled "Pearl Jam"
    Then I should see "Corduroy"
    And I should see "Dissident" 

我让alrady添加了第1步,我正确地创建并保存了一个测验(我通过puts测试)。 现在我正在开始第2步。我在paths.rb中添加了一个新路径

when /^the experiment page for quiz titled "(.*)"$/i 
  new_quiz_experiment_path(Quiz.find_by_title($1))  

由于某种原因,find_by_title不起作用。我收到此错误消息:

new_quiz_experiment_url failed to generate from {:quiz_id=>nil, :action=>"new", :controller=>"experiments"}, expected: {:action=>"new", :controller=>"experiments"}, diff: {:quiz_id=>nil} (ActionController::RoutingError) 

我确信记录在那里,并且正确保存;如果我插入

puts Quiz.find(1).title

我得到了“Pearl Jam”。看起来像find_by不起作用,这很奇怪,因为黄瓜生成的文件包含这个例子:

  #   when /^(.*)'s profile page$/i
  #     user_profile_path(User.find_by_login($1))     

我还首先尝试使用条件进行更简单的查找,但它也不起作用。

有什么想法吗?

提前致谢,
的Davide

1 个答案:

答案 0 :(得分:1)

感谢ryanb的建议我能够找到错误,这是在

Given quiz titled "Pearl Jam" has questions named "Corduroy, Dissident"

基本上我不一致地解析了这个步骤;我在第一个正则表达式中插入了引号,因此图块被保存为

"Pearl Jam"

我想我已经做了两件事:

  • 请注意步骤定义中的引号
  • 使用带有额外!的方法来获得更具表现力的错误消息。