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()實際上進(jìn)行了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()實際上進(jìn)行了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://m.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激情不卡| 国产精品午夜无码体验区| 最新中文字幕AV无码不卡| 中文字幕无码一区二区免费| 国产亚洲精久久久久久无码| 亚洲va成无码人在线观看| 久久久久久久久无码精品亚洲日韩 | 精品无码国产污污污免费| 无码乱码观看精品久久| 亚洲AV无码一区二区乱子伦| 色欲aⅴ亚洲情无码AV蜜桃| H无码精品3D动漫在线观看| 亚洲欧洲av综合色无码| 中出人妻中文字幕无码| 日韩中文无码有码免费视频| 亚洲中文字幕久久精品无码2021 | 亚洲AV中文无码乱人伦| 久久久久亚洲Av无码专| 国产台湾无码AV片在线观看| 粉嫩大学生无套内射无码卡视频| 亚洲精品一级无码鲁丝片| 亚洲AV成人无码网天堂| 亚洲国产超清无码专区| 国产50部艳色禁片无码| 国产日韩AV免费无码一区二区三区| 亚洲成a∨人片在无码2023| 久久久久亚洲AV无码观看 | 久久亚洲精品无码网站| 人妻丰满熟妇av无码区不卡| 中文字幕人妻无码系列第三区| 日韩电影无码A不卡| 69成人免费视频无码专区| 无码人妻丰满熟妇区96| 一本色道无码道在线观看| 亚洲精品无码av天堂| 久久精品?ⅴ无码中文字幕| 无码A级毛片日韩精品| 国产精品亚洲а∨无码播放麻豆| 无码少妇A片一区二区三区| 无码射肉在线播放视频| 一区二区三区无码被窝影院|