我正在使用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
答案 0 :(得分:1)
感谢ryanb的建议我能够找到错误,这是在
中Given quiz titled "Pearl Jam" has questions named "Corduroy, Dissident"
基本上我不一致地解析了这个步骤;我在第一个正则表达式中插入了引号,因此图块被保存为
"Pearl Jam"
我想我已经做了两件事:
!
的方法来获得更具表现力的错误消息。