golang從入門到精通,GinWeb開發(fā),單元測試

2024-02-01    分類: 網(wǎng)站建設(shè)

Gin Web開發(fā)

demo1/demo1.go源碼及解析

package mainimport ("github.com/gin-gonic/gin""log""net/http")func Index(c *gin.Context) {c.JSON(http.StatusOK, gin.H{"id":101,"name":"張三",})}func main() {//gin.Default()返回一個引擎實例,該實例已經(jīng)連接了記錄器和恢復(fù)中間件。//gin.Default()實際上進行了3步操作//1. debugPrintWARNINGDefault()//默認(rèn)的調(diào)試打印輸出//2. engine := New()//New返回一個新的空白引擎實例,不附帶任何中間件。//engine.Use(Logger(), Recovery())//engine.Use將一個全局中間件連接到路由器。//通過Use()連接的中間件將包含在每個請求的處理程序鏈中。//甚至404、405,靜態(tài)文件...//Logger()實例一個Logger中間件,它將把日志寫到gin.DefaultWriter。//默認(rèn)情況下是gin.DefaultWriter = os.Stdout。//Recovery()返回一個中間件,它可以從任何panics(恐慌)中恢復(fù)過來,如果有500,它會寫入500。app := gin.Default()//GET是router.Handle("GET", path, handle)的路由快捷寫法。app.GET("/", Index)//app.Run():啟用http.Server路由,并開始偵聽和服務(wù)HTTP請求。err := app.Run(":80")if err != nil {log.Panicln(err.Error())}}

demo1/demo1_test.go單元測試源碼及解析

packagemainimport ("github.com/gin-gonic/gin""io/ioutil""log""net/http/httptest""testing")func TestIndex(t *testing.T) {//設(shè)置log顯示信息格式//log.LstdFlags:表示標(biāo)準(zhǔn)輸出 Ldate | Ltime//log.Llongfile:表示輸出長文件名和行號log.SetFlags(log.LstdFlags |log.Llongfile)//gin.Default()返回一個引擎實例,該實例已經(jīng)連接了記錄器和恢復(fù)中間件。//gin.Default()實際上進行了3步操作//1.debugPrintWARNINGDefault()//默認(rèn)的調(diào)試打印輸出//2.engine := New()//New返回一個新的空白引擎實例,不附帶任何中間件。//engine.Use(Logger(), Recovery())//engine.Use將一個全局中間件連接到路由器。//通過Use()連接的中間件將包含在每個請求的處理程序鏈中。//甚至404、405,靜態(tài)文件...//Logger()實例一個Logger中間件,它將把日志寫到gin.DefaultWriter。//默認(rèn)情況下是gin.DefaultWriter =os.Stdout。//Recovery()返回一個中間件,它可以從任何panics(恐慌)中恢復(fù)過來,如果有500,它會寫入500。router := gin.Default()//GET是router.Handle("GET",path, handle)的路由快捷寫法。router.GET("/", Index)//func NewRequest(methodstring, targetstring, bodyio.Reader) *http.Request//對于http.Handler單元測試,可以使用NewRequest返回一個新的傳入服務(wù)器請求。//在測試的過程中,當(dāng)NewRequest發(fā)生錯誤時,會觸發(fā)panics(恐慌),//method:可以是POST、GET等,默認(rèn)的就是"GET"http://target:可以是路徑,也可以是絕對網(wǎng)址。如果目標(biāo)是絕對網(wǎng)址,則使用該網(wǎng)址的主機名。//body:可以是nil,如果body是*bytes.Reader類型、*strings.Reader類型、*bytes.Buffer,需要設(shè)置請求長度。req := httptest.NewRequest("GET","/",nil)//func NewRecorder() *ResponseRecorder//httptest.NewRecorder()將返回一個初始化的ResponseRecorder.w := httptest.NewRecorder()//ServeHTTP通過參數(shù)w和req設(shè)置HTTP請求router.ServeHTTP(w, req)//w.Result():返回處理程序生成的響應(yīng)。//返回的響應(yīng)包括:狀態(tài)碼、標(biāo)題、正文和可選的尾部。result := w.Result()//result.Body表示響應(yīng)體。//讀取body字段時,響應(yīng)body將按需流式傳輸。//如果網(wǎng)絡(luò)連接失敗或服務(wù)器終止響應(yīng),讀取body返回non-nil。//如果服務(wù)器用分塊傳輸,body將自動刪除。bytes, err := ioutil.ReadAll(result.Body)iferr !=nil{log.Fatalln(err.Error())}log.Println(string(bytes))t.Log(string(bytes))}

非常感謝您讀完創(chuàng)新互聯(lián)的這篇文章:"golang從入門到精通,GinWeb開發(fā),單元測試",僅為提供更多信息供用戶參考使用或為學(xué)習(xí)交流的方便。我們公司提供:網(wǎng)站建設(shè)、網(wǎng)站制作、官網(wǎng)建設(shè)、SEO優(yōu)化、小程序制作等服務(wù),歡迎聯(lián)系我們提供您的需求。

新聞名稱:golang從入門到精通,GinWeb開發(fā),單元測試
網(wǎng)站路徑:http://www.kartarina.com/news37/316487.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)網(wǎng)站內(nèi)鏈網(wǎng)頁設(shè)計公司網(wǎng)站營銷移動網(wǎng)站建設(shè)企業(yè)網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運營
主站蜘蛛池模板: 爽到高潮无码视频在线观看| 精品人妻无码专区中文字幕| 惠民福利中文字幕人妻无码乱精品 | 免费无码AV片在线观看软件| 毛片免费全部播放无码| 无码国产精品一区二区免费3p| 亚洲中文字幕无码av永久| 国产成人无码免费视频97| 中文字幕无码一区二区三区本日| 亚洲AV人无码综合在线观看| 无码丰满熟妇一区二区| 亚洲人成影院在线无码按摩店| 免费无码成人AV在线播放不卡| 日韩AV无码一区二区三区不卡| 中文成人无码精品久久久不卡 | 亚洲精品无码mⅴ在线观看| 一区二区三区无码高清视频| 精品视频无码一区二区三区| 国产激情无码一区二区三区| 无码专区人妻系列日韩精品少妇| 中文字幕人妻无码一夲道| 国产午夜鲁丝片AV无码免费| AA区一区二区三无码精片| 国产精品无码一区二区三区在| 久久午夜夜伦鲁鲁片免费无码影视| 人妻少妇无码精品视频区| 国模无码视频一区二区三区| 日韩精品久久无码中文字幕| 红桃AV一区二区三区在线无码AV | 午夜无码中文字幕在线播放 | 精品久久久久久久无码久中文字幕| 亚洲AV无码欧洲AV无码网站| 日韩aⅴ人妻无码一区二区| 免费人妻无码不卡中文字幕系| 亚洲一级特黄无码片| 日韩人妻系列无码专区| 人妻少妇精品无码专区漫画| 精品久久久无码人妻中文字幕| 色综合久久无码中文字幕| 久久精品成人无码观看56| 亚洲V无码一区二区三区四区观看|