2009-08-19 33 views
1

我正在與rspec,rspec-rails,黃瓜和webrat的鐵軌工作。 我正在嘗試學習BDD和一般測試。 我有黃瓜情形是這樣的:黃瓜:鐵軌動態發現不工作在paths.rb

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,其中創建和正確保存測驗(I通過放測試)。 現在我的工作步驟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))  

我也試過一個簡單的發現先用條件下,它也不起作用。

有什麼想法?

由於提前,
達維德

+1

嘗試使用「find_by_title!」最後帶有感嘆號。它可能會提供更具描述性的錯誤消息。 – ryanb 2009-08-19 21:00:30

+0

完美的提示。我得到了「無法找到標題= Pearl Jam的測驗」;在提示之後,我意識到我已經解析了上一步的不一致,將名稱保存爲「Pearl Jam」(帶引號);這解釋了爲什麼我沒有找到記錄。謝謝! – nutsmuggler 2009-08-20 06:20:24

+0

另外,我剛纔意識到你是瑞典的鐵路廣播。這個測試案例仿照你的黃瓜介紹,所以你的提示已經相當合適和及時!再次感謝,也感謝偉大的電視廣播工作! – nutsmuggler 2009-08-20 06:27:38

回答

1

由於ryanb的建議我能找到的錯誤,這是在

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

基本上我解析了這一步inconsisetntly;我插在第一正則表達式引號,所以瓷磚得到了保存爲

"Pearl Jam" 

我想我已經lerned兩件事情:

  • 小心步驟定義引號
  • 使用方法與額外的!以獲得更具表達性的錯誤消息。
+0

謝謝!這個問題困擾着我,我也遇到了同樣的問題。 – 2013-02-13 03:38:57