我有一个应用程序,我工作的一个途径,它看起来像这样...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