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是完美的,謝謝。 –