Golang httptest
簡介 用go開發API通常會用到 net/http pacakge,其提供基本的 http 客戶端和服務器功,允許使用者建立 http server、處理 http 請求以及發送 http 請求到其他server。 然而之前沒有寫測試的習慣,在學TDD的時候發現一個有趣的package - net/http/httptest net/http/httptest 套件主要用於測試 http 服務器,可以模擬 http 請求和回應,讓測試者可以在沒有實際server的情況下測試 http 操作相關的函數,而不用依賴網路和實際的http server。 Key function in net/http/httptest 在進入實際操作前先說明package裡面重要的函數和屬性。 // net/http/httptest func NewServer(handler http.Handler) *Server { ts := NewUnstartedServer(handler) ts.Start() return ts } // net/http type Handler interface { ServeHTTP(ResponseWriter, *Request) } // The HandlerFunc type is an adapter to allow the use of // ordinary functions as HTTP handlers. If f is a function // with the appropriate signature, HandlerFunc(f) is a // Handler that calls f....