gpt4 book ai didi

ruby - 使用 RSpec 测试 HTTPS (SSL) 请求的简单方法

转载 作者:数据小太阳 更新时间:2023-10-29 08:18:42 24 4
gpt4 key购买 nike

我希望 Rspec 使用 https 请求根目录。这是我目前拥有的:

it "requesting root (/) with HTTPS should return 200" do
get "https://test.host/"
last_response.should be_ok
end

尝试在 Test an HTTPS (SSL) request in RSpec Rails 中提出的解决方案返回以下错误:

wrong number of arguments (0 for 1)

我假设我可以做类似的事情:

get "/", :https => "on"

有没有办法在不指定主机的情况下请求root?

最佳答案

当使用 Sinatra 和 RSpec 时,你正在使用 Rack::Test 提供的 #get/#post 方法,所以我建议你去看看它们是如何实现的工作:https://github.com/brynary/rack-test/blob/master/lib/rack/test.rb

如您所见,它们采用可选的 env 哈希,您可以在其中将“HTTPS”设置为“on”,如下所示:

get '/', {}, {'HTTPS' => 'on'}

如果你想为你的所有请求设置默认值,你需要覆盖 Rack::Test::Session#default_env 方法,并且有 'HTTPS' => ' on' 到它(我建议在你的 spec_helper.rb 中这样做),像这样:

class Rack::Test::Session
def default_env
{ "rack.test" => true, "REMOTE_ADDR" => "127.0.0.1", "HTTPS" => 'on' }.merge(headers_for_env)
end
end

关于ruby - 使用 RSpec 测试 HTTPS (SSL) 请求的简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14632197/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com