我想在我的Web应用程序中验证我的URL 找不到404。我知道它不存在,但是我需要通过RSPEC通过测试来确认这一点。如何?这行不通:
it "404" do
get "/some_url_404"
expect(response.status).to eq 404
end
测试本身失败了:
ActionController :: RoutingError: 没有路由匹配[get]"/some_url_404"
update
尚未给出答案。
最合适的地方是请求spec( spec/requests
subfolder)。上面的片段应按预期工作。
为了实现这一目标,您可以创建一条匹配所有未定义路径的路由:
get '*path', to: "controller#action"
上面的controller
和action
表示您想要的所有未列出路由请求的控制器和操作。这是控制器的操作如何
#controller/action
def action
render(:file => "#{Rails.root}/public/404.html", status: 404)
end
注意
确保路线放在路线底部。如果没有,所有请求将结束。
帖子中介绍了实际答案。
您需要更改test.rb中的以下设置:
consider_all_requests_local = false
config.action_dispatch.show_exceptions = true