gin 静态测试,创建gin.Context对象

在用convey包进行单元测试的时候,遇到某些被测函数的入参是:ctx *gin.Context。

git 复制代码
github.com/smartystreets/goconvey/convey

此时可以按照下面的方法new一个测试context即可,前面的new request需要带着哈。

go 复制代码
func TestAssembleStock(t *testing.T) {
   r := &articleService{}         // Create an instance of the articleService // Sample dataJson
   request := vo.ArticleRequest{} // Create a sample ArticleRequest
   request.Version = "6.0.0"// 创建一个新的 Gin 引擎
   // 创建一个模拟的 HTTP 请求
   req, err := http.NewRequest("GET", "/your/route", nil)
   if err != nil {
      t.Fatal(err)
   }
   // 使用 gin 的上下文构造函数创建一个上下文对象
   ctx, _ := gin.CreateTestContext(httptest.NewRecorder())
   ctx.Request = req

   Convey("Given a list of stocks", t, func() {
      jsonData := []byte(`{"result":{"data":[{"stocks":[{"code":["hk02331","02331"],"market":"hk","other_codes":[{"code":["usLNNGY","LNNGY"],"market":"us"},{"code":["hk82331","82331"],"market":"hk"}],"tf":13,"type":"stocks","weight":0.255,"word":"李宁"},{"code":["hk00012","00012"],"market":"hk","tf":1,"type":"stocks","weight":0.02,"word":"恒基地产"}]}]}}`)
      Convey("When content is present with content for stocks", func() {
         result, err := r.assembleStock(ctx, request, jsonData)                                                  // Call the checkWord function
         So(err, ShouldBeNil)                                                                                              // Assert that error is nil
         So(string(result), ShouldEqual, `1`)
      })
   })
}
复制代码
相关推荐
那我掉的头发算什么1 分钟前
【SpringBoot】一篇文章讲清楚拦截器所有知识
java·spring boot·后端·spring
Loo国昌1 分钟前
【AI应用开发实战】 03_LangGraph运行时与状态图编排:从直接执行到图编排的演进之路
人工智能·后端·python·自然语言处理·prompt
追随者永远是胜利者1 小时前
(LeetCode-Hot100)169. 多数元素
java·算法·leetcode·go
普通网友3 小时前
PL/SQL语言的正则表达式
开发语言·后端·golang
想用offer打牌3 小时前
一站式了解火焰图的基本使用
后端·面试·架构
小王同学^ ^3 小时前
从零开发一个操作系统(1.3) 如何使用ContextOS 智能名片打造个人IP
后端
Penge6664 小时前
Go 泛型里的 ~[]E 到底是什么
后端
REDcker4 小时前
FTP协议原理及应用精解
linux·后端·计算机网络·互联网·ftp·服务端开发
楚兴5 小时前
Go + Eino 构建 AI Agent(一):Hello LLM
人工智能·后端
一个处女座的程序猿O(∩_∩)O6 小时前
Go语言Map值不可寻址深度解析:原理、影响与解决方案
开发语言·后端·golang