开发者社区> 问答> 正文

Golang 单元测试中如何用 monkey 方式测试?

Golang 单元测试中如何用 monkey 方式测试?

展开
收起
游客x3a254b44ahsk 2022-05-09 17:55:52 4197 0
来自:阿里技术
2 条回答
写回答
取消 提交回答
  • func TestListRepoCrAggregateMetrics(t *testing.T) { w := httptest.NewRecorder() _, engine := gin.CreateTestContext(w) engine.GET("/api/test/code_review/repo", ListRepoCrAggregateMetrics) var crCtx *code_review.CrCtx repoRet := code_review.RepoCrMetricsRsp{ } monkey.PatchInstanceMethod(reflect.TypeOf(crCtx), "ListRepoCrAggregateMetrics", func(ctx *code_review.CrCtx, workNo string) (*code_review.RepoCrMetricsRsp, error) { if workNo == "999999" { repoRet.Total = 0 repoRet.RepoCodeReview = []*code_review.RepoCodeReview{} } return &repoRet, nil }) req, _ := http.NewRequest("GET", "/api/test/code_review/repo?work_no=999999", nil) engine.ServeHTTP(w, req) assert.Equal(t, w.Code, 200) var v map[string]code_review.RepoCrMetricsRsp json.Unmarshal(w.Body.Bytes(), &v) assert.EqualValues(t, 0, v["data"].Total) assert.Len(t, v["data"].RepoCodeReview, 0) }

    2022-05-09 23:19:14
    赞同 展开评论 打赏
  • 微信搜索「龙哥手记」,回复关键字:见面礼

    学习

    2022-05-09 18:21:27
    赞同 展开评论 打赏
来源圈子
更多
收录在圈子:
+ 订阅
问答排行榜
最热
最新

相关电子书

更多
Go语言路上踩过的坑 立即下载
gohbase :HBase go客户端 立即下载
Go构建日请求千亿级微服务实践 立即下载