gin靜態測試中獲取gin.Context


目錄

1. gin.Context概念

2. 創建用於測試的gin.Context

3. 如何初始化context.Params

Context的概念

通俗理解:Context就是程序(web應用)的運行環境(容器),里面存放了應用程序的所有資源(web應用相關的一些設置和全局變量),你要使用資源時就訪問它,也可以存放東西。

context就是“容器”,放的就是應用程序的所有資源,要用時候就訪問它,所以context里面的東西,在同一個應用程序里面是全局的;web上下文可以看成web應用的運行環境,一般用context名字來修飾,里面保存了web應用相關的一些設置和全局變量.

gin.Context是 gin 中最重要的部分。它允許我們在中間件之間傳遞變量, 管理流程,例如驗證請求的 JSON 並呈現 JSON 響應。

gin.Context的定義

type Context struct {
    // responseWriter對ResponseWriter封裝
    writermem responseWriter
    // http請求及響應writer
    Request   *http.Request
    Writer    ResponseWriter
    // 鍵值對切片類型
    Params   Params
	……
}

創建用於測試的gin.Context

測試示例:

import (
	"net/http/httptest"
	"github.com/gin-gonic/gin"
)

func main(){
	// 創建用於測試的gin.Context,Recorder是響應記錄器
	c, _ := gin.CreateTestContext(httptest.NewRecorder())
	// 添加context的參數Params
	c.Params = []gin.Param{
		gin.Param{Key: "key", Value: "value"},
	}
	// 取出context參數params中的值
	key := c.Param("key")
}

如何初始化context.Params

為什么c.Params為什么要這樣初始化?

通過查閱gin源代碼可以找到Params的定義,如下

type Params []Param
// Param是一個URL參數, 由key和value組成
type Param struct {
	Key   string
	Value string
}
  • Params是Param數組
  • Param是包含key,value的結構體

所以Params的定義就是初始化一個包含key和value兩種屬性的結構體數組


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM