首页 > 解决方案 > 如何在 rspec 中测试 HTTPS 请求?

问题描述

Stackoverflow 对此有很多答案,但它们都不起作用。好像它们已经过时了。我试过像这样的代码

get :index, protocol: :https

标签: ruby-on-railsrspecrspec-rails

解决方案


您的代码片段表明它是一个规范type: :request。问题是——HTTP 并没有真正参与这些测试。

发生的情况是,当您键入时get :index,正在生成一个请求对象,将其传递给 rails,并捕获响应对象并针对其状态进行测试 expect(response).to be_success

因此,您需要指定测试的确切内容:

  • https://如果有人使用,您的应用程序是否会重定向到http://
  • 您的证书是否正确设置并且您的生产应用程序是否使用https://协议?(提示:这在规范测试中真的不能是睾丸)
  • 别的东西?

SSL 加密对您的 Web 应用程序应该是透明的,您对此有疑问吗?您的生产应用程序是否使用 HTTPS 失败,并且使用 HTTP 正常工作?(考虑一下后,请随意提出一个新问题)


推荐阅读