RSpec.describe "Home", type: :request do
describe "GET /index" do
it "is a success" do
get root_path, {}, {'HTTPS' => 'on'}
expect(response).to have_http_status(200)
end
end
end
Rspec版本-3.8 测试类型-请求规范
如何在所有请求规范上全局设置https协议?
答案 0 :(得分:1)
您可能正在使用Rails,在这种情况下,您可以执行以下操作之一:
RSpec.configure do |config|
Rails.application.routes.default_url_options[:protocol] = 'https'
end
RSpec.configure do |config|
config.before(:all, type: :request) do
Rails.application.routes.default_url_options[:protocol] = 'https'
end
end
Rails.application.configure do
default_url_options[:protocol] = 'https'
end
这对于请求规范应该可以正常工作,但是功能规范可能会带来其他复杂性。在这种情况下,请参见https://github.com/rspec/rspec-rails/issues/1275。
如果您不使用Rails,仍然可以遵循上面的宽泛模式,但是可以使用框架的等效方法或配置设置。如果所有其他方法均失败,则可以覆盖Rspec方法的get(),post()等,并在覆盖的方法中简单地调用super()
并将{ protocol: 'https' }
或{ 'HTTPS' => 'on' }
合并到参数中。
另外,请注意,'HTTPS' => 'on'
可能已被弃用,而赞成protocol: 'https'
。
具有更多可能性的类似帖子:
Test an HTTPS (SSL) request in RSpec Rails