簡體   English   中英

如何在 rspec 中測試 HTTPS 請求?

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM