1
我使用net/http
来维护一些处理远程文件的Ruby宝石。在Ruby中为单元测试创建一个虚拟服务器
我目前的单元测试设置包括在setup
方法中启动一个WEBrick服务器,然后在teardown
中将其终止。
def setup
return if @server_thread
@server_thread = Thread.new do
s = WEBrick::HTTPServer.new(:Port => 12000, :DocumentRoot => www_root, :Logger => Log.new(nil, BasicLog::ERROR), :AccessLog => [])
port = s.config[:Port]
begin
s.start
ensure
s.shutdown
end
end
end
使用Ruby 1.9.2和1.9.3我已经得到连接错误的一堆 - Errno::ECONNREFUSED: Connection refused - connect(2)
。更令人沮丧的是,它们是暂时的 - 有时会发生,有时不会。我所能想到的是,WEBrick要么不知所措,要么没有正确设置。
我需要能够通过HTTP加载多个静态文件(在我的fixtures目录中)来测试这些gem。创建虚拟HTTP服务器以用于Test::Unit
测试的最佳做法是什么?
webmock是完美的,谢谢。 –