1
我想写一些测试,同时访问我的小sinatra应用程序。Sinatra测试会话和并发访问
这里的问题是,我使用会话(通过Rack :: Session :: Pool)。我无法弄清楚如何让机架测试产生一个新的会话。在我的请求中注入会话数据时,我总是会有一个会话。所以我基本上一次只能有一个会话。
在我的测试我试过如下:
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}
是否有某种“浏览器层,在那里我可以有多个实例”?
编辑:我很抱歉,我必须澄清:线程的例子只是一个疯狂的猜测,得到一个新的会议。它没有工作。所以我只想找一种方法在runnin(测试)服务器上打开多个会话。在开发模式下,我可以打开一个新的浏览器会话来实现这样的事情。在测试模式下,我目前失去了。
@leify什么是你要能与麒麟.sorry正确的做,如果我错了西纳特拉上的WEBrick和使用WEBrick基本上是单一线程工作,所以我没有看到这种事情发生纠正我,如果我错了 – Viren
这可能是对的,但它与问题无关。线程示例来自客户端。即使服务器只有一个线程,它也应该能够管理多个会话。 – leifg