使用rspec测试路由重定向

Lau*_*ung 3 routing rspec ruby-on-rails

我有Rails和Rspec的路由问题,我无法解决.

在我的routes.rb文件中,我设置了一些重定向,如下所示:

match "/events" => redirect("/albums")
match "/events/:id" => redirect("/albums/%{id}")
Run Code Online (Sandbox Code Playgroud)

这有效,但我无法弄清楚如何测试它.我希望我能做点什么

 { :get => "/events" }.should route_to(:controller => "events", :action => "index")
Run Code Online (Sandbox Code Playgroud)

要么

 { :get => "/events" }.should redirect_to("/albums")
Run Code Online (Sandbox Code Playgroud)

但是这些选项似乎都不起作用.

创建正常的请求响应周期,获取"/ events"然后检查响应是重定向返回错误,没有响应...

Nad*_*leh 6

您可以在请求规范中测试它(在规范/请求中).这是一个例子:

require "spec_helper"

describe "redirection" do
  it "should redirect events to albums" do
    get "/events/1"
    response.should redirect_to("/albums/1")
  end
end
Run Code Online (Sandbox Code Playgroud)