我想写一些测试来同时访问我的小 sinatra 应用程序。
这里的问题是,我使用会话(通过 Rack::Session::Pool)。我不知道如何让 rack-test 产生一个新会话。当我在请求中注入会话数据时,我总是以一个会话结束。所以我基本上一次只能有1个会话。
在我的测试中,我尝试了以下方法:
threads = []
2.times do |index|
threads << Thread.new do
get "/controller/something", {}, "rack.session" => {:id => "Thread#{index}"}
post "/do_action"
end
end
thrads.each{|t| t.join}
是否有某种“我可以有多个实例的浏览器层”?
编辑:对不起,我必须澄清:线程示例只是获得新会话的疯狂猜测。它没有用。所以我只是在寻找一种在运行(测试)服务器上打开多个会话的方法。在开发模式下,我可以打开一个新的浏览器会话来实现这样的事情。在测试模式下,我目前迷路了。