[英]How to test an HTTPS request in rspec?
Stackoverflow 对此有很多答案,但它们都不起作用。 好像它们已经过时了。 我试过像这样的代码
get :index, protocol: :https
您的代码片段表明它是规范type: :request
。 问题是 - HTTP 并没有真正参与这些测试。
发生的情况是,当您键入get:index
时,正在发出请求 object,并将其传递给 rails,并捕获响应 object 并针对其 state 进行测试expect(response).to be_success
因此,您需要指定要测试的确切内容:
http://
,您的应用程序是否会重定向到https://
://https://
协议一起使用? (提示:这在规范测试中真的不能是睾丸)SSL 加密对您的 web 应用程序应该是透明的,您对此有什么问题吗? 您的生产应用程序是否因 HTTPS 而失败,并且与 HTTP 一起正常工作? (考虑一下后,请随意提出一个新问题)
如果您尝试在 HTTPS 代理后面模拟非 HTTPS 应用程序的行为,最简单的方法是传递 HTTP header,例如X-Forwarded-Proto
:
get :index, headers: { 'X-Forwarded-Proto' => 'https' }
这将导致request.base_url
以'https'
开头, request.scheme
返回'https'
和request.ssl?
返回true
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.