【发布时间】:2013-01-15 22:23:33
【问题描述】:
我希望 Rspec 使用 https 请求根目录。这是我目前拥有的:
it "requesting root (/) with HTTPS should return 200" do
get "https://test.host/"
last_response.should be_ok
end
尝试Test an HTTPS (SSL) request in RSpec Rails 中提出的解决方案会返回以下错误:
wrong number of arguments (0 for 1)
我想我可以做这样的事情:
get "/", :https => "on"
有没有办法在不指定主机的情况下请求root?
【问题讨论】:
-
我不确定,但是您发布的链接的 cmets 中提出的观点给出了我将使用的解决方案,即让整个站点始终需要 SSL。那么你就不需要像这样进行特殊检查了。
-
不幸的是我做不到。某些部分需要针对 HTTP 进行测试,而其他部分需要针对 HTTPS 进行测试。
-
您是否要测试它是否只接受安全连接?无论如何,功能都是相同的,因此也许您可以通过关闭 SSL 要求来测试功能,然后检查是否使用了安全连接,重新打开 SSL 要求,然后检查当您使用时是否给出了 301 重定向进行非 SSL 调用?
-
我已经在检查非 SSL 调用的 301 重定向。我现在想确保在发出 ssl 请求时收到 200。
-
但是您没有检查 Sinatra 或服务器(Thin 或其他),因为它们不处理 SSL。这只是一个隧道,如果您通过 HTTP 获得 200,那么只要处理 HTTPS 的服务器设置正确,您就会通过 HTTPS 获得它。我假设那将是 Apache 或 Nginx 等。