我有一个rails 4 api应用程序,我可以捕获所有丢失的路径:
namespace :api, defaults: {format: :json} do
namespace :v1 do
# matchers ...
end
# catch all undefined paths and redirect them to the errors controller
match "*path", to: "errors#routing_error", via: :all
end
通过简单的点击测试,这看起来像一个魅力,但我想写 这种行为的rspec测试。
在我的Rspec规范中,我尝试以下方法:
it "should capture non existing action" do
get '/api/non-existing-action', format: :json #Note that non-existing-action is not defined in the routes.rb
#expectations come here
end
问题是Rspec似乎在路由器之前捕获了路由错误并引发了像这样的默认错误
ActionController::UrlGenerationError:
No route matches {:action=>"/api/non-existing-action", :controller=>"api/api", :format=>:json}
所以我的问题是:有没有办法告诉Rspec它应该让我的路由器处理非现有路径,以便我可以期待错误控制器的错误响应?