1 回答

TA貢獻(xiàn)1845條經(jīng)驗(yàn) 獲得超8個(gè)贊
您正在與語(yǔ)言作斗爭(zhēng),并將您的 OOP 愛(ài)好帶入并非為此而設(shè)計(jì)的語(yǔ)言。
我個(gè)人會(huì)改變方向并使用舊的良好扁平結(jié)構(gòu)和功能。
雖然,如果你想繼續(xù)你的設(shè)計(jì),你可以模擬整個(gè)http堆棧而不是界面。與調(diào)用接口相比,測(cè)試真實(shí)有效http負(fù)載時(shí),您可以更有信心地測(cè)試代碼。
注入:HttpClient_Vehiclefunc NewVehicle(httpClient *http.Client){}
在測(cè)試代碼中,使用*http.ServeMux:
mux.Handle("/path1", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
// assessments and mocked response
}))
mux.Handle("/path2", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
// assessments and mocked response
}))
// fallback to show not implemented routes
result.mux.Handle("/", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
result.t.Errorf("Not Supported route %q", r.URL.Path)
}))
構(gòu)建 Http 服務(wù)器:
server := httptest.NewServer(mux)
從多路復(fù)用服務(wù)器創(chuàng)建 Http 客戶端:
client := server.Client()
- 1 回答
- 0 關(guān)注
- 125 瀏覽
添加回答
舉報(bào)