2017-06-21 80 views

回答

1

对于你的情况,你实际上是试图从/ foobar + baz/bar + boo重定向到/附加参数。 RSpec testing redirect to URL with GET params

通常不应测试与重定向URL语法参数CUS这不是URL位置,但参数:这个职位可能相似。您可以手动提取位置并解析参数以查看它们是否是您想要的。这篇文章的第一个答案举了一个例子。

0

您应该提出请求测试。 RSpec的有:

expect(response).to redirect_to(...) 

,但它并没有作出断言的PARAMS

您可以使用此一:方法

def expect_to_redirect_to_with_params(expected_url, expected_params) 
    redirect_url = response.location 
    uri = URI.parse(redirect_uri) 
    redirect_params = Rack::Utils.parse_query(uri.query) 

    expect(redirect_url).to eq(expected_uri) 
    expect(redirect_params).to eq(expected_params) 
end 

如果你愿意,你可以把它到自定义matcher代替。