[英]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.