我有一個應用程序,我工作的一個途徑,它看起來像這樣...RSpec的路由錯誤的測試,但不是在應用
match ":place_id/:id", :controller => "companies", :action => "show", :place_id => /\S{2}/
所以在我的瀏覽器,我可以導航到該網址。
mylocalmachine/GB /一些-公司
在服務器記錄其所有的好。
Started GET "/gb/some-company" for 127.0.0.1 at 2013-04-30 17:44:52 +0100
Processing by CompaniesController#show as HTML
Parameters: {"place_id"=>"gb", "id"=>"some-company"}
但在控制器規範中,我試圖測試這條路線及其行爲。
get "/gb/some-company"
但我得到這個錯誤
ActionController::RoutingError: No route matches {:controller=>"companies", :action=>"gb/some-comapny"}
注:我試圖把這個路線在routes.rb中文件的頂部,看看測試工作,但沒有運氣。其他所有規格也都通過了。任何想法,我可能會出錯,將不勝感激。
UPDATE:這是測試的樣子......
params_from(:get, "/gb/some-company").should == {:controller => "companies", :action => "show", :country_id => "gb", :id => "some-company"}
是的,這工作表示感謝,測試實際上是確保params正確地從URL中提取。我已經更新了問題以顯示實際測試,有沒有更好的方法可以爲此編寫測試? – cih 2013-04-30 17:34:27
看看我的更新回答 – 2013-04-30 17:51:43
這正是我所追求的,我正在從Rails 2-3和RSpec升級到版本2的過程中。感謝您的幫助! – cih 2013-04-30 18:05:36