关于RSpec / Capybara,我有一个相当笼统的问题。如果应用程序基于TLD执行重定向(例如,example.com和example.net都解析为相同的IP,但是对第一个的请求被重定向到example.com/locale_com而请求重定向到第二个 - 到example.net/locale_net),请求测试将如何?该应用程序是用Rails编写的。
我可以想到一种方法 - 为两个主机(example.com和example.net)添加条目以解析为/ etc / hosts中的127.0.0.1 - 但这对我不起作用,因为测试将在没有root访问权限的不同机器上运行。
答案 0 :(得分:0)
我会在我的Rspec控制器测试中测试这个:
describe MyController do
describe "GET index" do
before(:each) do
request.host = "example.net"
get :index
end
it "should redirect .net to .com" do
uri = URI.parse(response.headers["Location"])
expect(uri.host).to eq "example.com"
end
end
end
答案 1 :(得分:0)
如果通过路径文件进行重定向,则可以使用以下代码在控制器规范外进行测试:
describe "Route Redirects" do
describe "GET example.net" do
before(:each) do
request.host = "example.net"
get "/"
end
it "redirect to example.com" do
expect(response.code).to eq 302
uri = URI.parse(response.location)
expect(uri.host).to eq "example.com"
end
end
end