Oat*_*eal 9 testing controller rspec ruby-on-rails
我在routes.rb中定义了一个自定义路由
get "packages/city/:location_id", to: "packages#index"
Run Code Online (Sandbox Code Playgroud)
在controller_spec.rb,
get :index
Run Code Online (Sandbox Code Playgroud)
给出了这个错误,
ActionController::UrlGenerationError:
No route matches {:action=>"index", :controller=>"packages"}
Run Code Online (Sandbox Code Playgroud)
如何在控制器规范中明确指定自定义路由?
小智 13
如果您宣布这样的路线,也许会有所帮助?
get "packages/city/:location_id" => "packages#index"
Run Code Online (Sandbox Code Playgroud)
记得location_id在规格中提供一个参数,例如get :index, location_id: 1.
我尝试了上面的解决方案,但他们没有工作.我有:
ArgumentError:
unknown keyword: location_id
Run Code Online (Sandbox Code Playgroud)
似乎RSpec现在需要一个params参数.相应的调用如下所示:
get(:index, params: { location_id: 123 })
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8031 次 |
| 最近记录: |