Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >go :gin 编写测试代码

go :gin 编写测试代码

原创
作者头像
IT工作者
发布于 2022-07-22 08:44:06
发布于 2022-07-22 08:44:06
58900
代码可运行
举报
文章被收录于专栏:程序技术知识程序技术知识
运行总次数:0
代码可运行

本文实验 gin框架下 测试代码的编写

功能代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package main

import (
    "github.com/gin-gonic/gin"
)

func setupRouter() *gin.Engine {
    r := gin.Default()
    r.GET("/ping", func(c *gin.Context) {
        c.String(200, "pong")
    })
    return 
}

func main() {
    r := setupRouter()
    r.Run(":8080")
}

测试代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package main

import (
    "net/http"
    "net/http/httptest"
    "testing"

    "github.com/stretchr/testify/assert"
)

func TestPingRoute(t *testing.T) {
    router := setupRouter()

    w := httptest.NewRecorder()
    req, _ := http.NewRequest("GET", "/ping", nil)
    router.ServeHTTP(w, req)

    assert.Equal(t, 200, w.Code)
    assert.Equal(t, "pong", w.Body.String())
}

这里需要注意的是测试代码文件的命名 必须以 *_test.go 格式 , 我当前的是 main_test.go

执行测试代码

go test -v main_test.go

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Gin-Web-Framework官方指南中文(上篇)
Gin是一个用Golang写的HTTP web框架。它具有类似于Martini的API,性能更高-快40倍。 如果需要很好的性能,那么肯定是推荐现在使用Gin。
小诚信驿站
2019/10/30
3.3K0
Gin-Web-Framework官方指南中文(上篇)
Go单测系列2—网络测试
这是Go语言单元测试从零到溜系列教程的第1篇,介绍了如何使用httptest和gock工具进行网络测试。
luckpunk
2023/09/10
4700
Go 单元测试之HTTP请求与API测试
假设我们的业务逻辑是搭建一个http server端,对外提供HTTP服务。用来处理用户登录请求,用户需要输入邮箱,密码。
贾维斯Echo
2024/04/18
4400
Go 单元测试之HTTP请求与API测试
深入浅出 Golang 资源嵌入方案:前篇
非常多的语言都具备资源嵌入方案,在 Golang 中,资源嵌入相关的开源方案更是百家争鸣。网络上关于 Golang 资源嵌入的使用方案很多,但是鲜有人剖析原理,以及将原生实现和开源实现进行性能比较,适用场景分析。
soulteary
2022/01/16
6180
深入浅出 Golang 资源嵌入方案:前篇
Go 每日一库之 testify
testify可以说是最流行的(从 GitHub star 数来看)Go 语言测试库了。testify提供了很多方便的函数帮助我们做assert和错误信息输出。使用标准库testing,我们需要自己编写各种条件判断,根据判断结果决定输出对应的信息。
用户7731323
2021/08/20
1.9K0
go test 测试用例那些事
    go test命令,相信大家都不陌生,常见的情况会使用这个命令做单测试、基准测试和http测试。go test还是有很多flag 可以帮助我们做更多的分析,比如测试覆盖率,cpu分析,内存分析,也有很多第三方的库支持test,cpu和内存分析输出结果要配合pprof和go-torch来进行可视化显示,可以看一下之前的这篇帖子 golang 使用pprof和go-torch做性能分析,这篇帖子总结一下go test的一些常用方式和推荐一些很棒的第三方库。
lpxxn
2018/12/24
1.5K0
从0使用gin框架搭建博客(2)-问题解决
binding是引入了validator10.0 ,这里是系统可自动校验email格式
爽朗地狮子
2022/10/20
3190
Golang 单元测试 - 接口层
上次我们已经搞定了逻辑层的单元测试,这次我们来康康接口层的单元测试。接口层主要负责的就是请求的处理,最常见的就是 HTTP 请求的处理。
LinkinStar
2023/02/24
4110
【实践】Golang的单元测试入门go test
go test命令,相信大家都不陌生,常见的情况会使用这个命令做单测试、基准测试和http测试。go test还是有很多flag 可以帮助我们做更多的分析,比如测试覆盖率,cpu分析,内存分析,也有很多第三方的库支持test,cpu和内存分析输出结果要配合pprof和go-torch来进行可视化显示。
辉哥
2019/08/18
3.6K0
Go语言的测试:编写单元测试和性能测试
在实际开发中,测试是保证代码质量和稳定性的重要手段。Go语言的testing包提供了一种简单而强大的方法来编写单元测试和性能测试。通过编写单元测试,可以验证每个函数和方法的正确性;通过编写性能测试评估代码的运行效率并进行优化。
数字扫地僧
2024/06/22
2090
Go 单元测试之mock接口测试
gomock 是一个 Go 语言的测试框架,在实际项目中,需要进行单元测试的时候。却往往发现有一大堆依赖项。这时候就是 Gomock 大显身手的时候了,用于编写单元测试时模拟和测试依赖于外部服务的代码。它允许你创建模拟对象(Mock Objects),这些对象可以预设期望的行为,以便在测试时模拟外部依赖,通常使用它对代码中的那些接口类型进行mock。
贾维斯Echo
2024/04/19
2320
Go 单元测试之mock接口测试
Go语言实战笔记(二十一)| Go 单元测试
相信我们做程序员的,对单元测试都不陌生。单元测试一般是用来测试我们的代码逻辑有没有问题,有没有按照我们期望的运行,以保证代码质量。
飞雪无情
2018/08/28
7420
Go语言实战笔记(二十一)| Go 单元测试
走近微服务,第4部分:使用GoConvey进行测试和模拟
应该如何测试微服务?在为这个特定领域制定测试方案时,需要考虑哪些特别的挑战?在本博客系列的第4部分中,我们将一窥究竟。
用户2176511
2018/06/20
3.4K0
走近微服务,第4部分:使用GoConvey进行测试和模拟
client-go初级篇,从操作kubernetes到编写单元测试
程序员欣宸
2023/07/10
6340
client-go初级篇,从操作kubernetes到编写单元测试
Go 语言 Web 编程系列(十)—— 基于 gorilla/mux 包实现路由匹配:健康检查与接口测试
接下来,我们基于 gorilla/mux 路由器实现一个简单的健康检查接口,对一个应用来说,健康检查无非是检查应用本身是否可用,以及应用依赖的核心服务是否可用,这些核心服务通常包括 DB、缓存等。
学院君
2020/03/20
1.2K0
Go 语言 Web 编程系列(十)—— 基于 gorilla/mux 包实现路由匹配:健康检查与接口测试
Golang 简洁架构实战
由于golang不像java一样有一个统一的编码模式,所以我们和其他团队一样,采用了 Go 面向包的设计和架构分层这篇文章介绍的一些理论,然后再结合以往的项目经验来进行分包:
luozhiyun
2022/05/09
1.2K0
Golang 简洁架构实战
Go:测试库testify简介
testify可以说是最流行的(从 GitHub star 数来看)Go 语言测试库了。testify提供了很多方便的函数帮助我们做assert和错误信息输出。使用标准库testing,我们需要自己编写各种条件判断,根据判断结果决定输出对应的信息。
Freedom123
2024/03/29
3140
Go项目实战-学会对代码逻辑层进行BDD测试
前面两节我们的单元测试主要集中在对项目基础设施层的代码进行单元测试,针对Dao数据操作层我们讲解了如何在不实际对项目数据库进行CURD的情况下使用了sqlmock的方式进行单元测试。而对于外部API对接层则是教会大家用gock实现无侵入的HTTP Mock,对有API请求的代码进行单元测试。
KevinYan
2025/05/15
850
Go项目实战-学会对代码逻辑层进行BDD测试
手把手,带你从零封装Gin框架(五):静态资源处理 & 优雅重启服务器
这一篇将对路由进行分组调整,把定义路由的文件集中到同一个目录下,并处理前端项目打包后的静态文件。在 Go 1.8 及以上版本中,内置的 http.Server 提供了 Shutdown() 方法,支持平滑重启服务器,本次将使用它调整项目启动代码,若 Go 版本低于 1.8 可以使用 fvbock/endless[1] 来替代
用户10002156
2024/01/17
1.6K1
手把手,带你从零封装Gin框架(五):静态资源处理 & 优雅重启服务器
http server测试
在对http服务测试时,我们可以通过两种方式来完成,一种基于http服务,一种基于自带的测试包来完成。
暮雨
2019/08/19
1.8K0
相关推荐
Gin-Web-Framework官方指南中文(上篇)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验