Golang测试框架goconvey进行单元测试流程介绍
作者:Sahm5k 时间:2024-02-09 04:21:27
导包
import “github.com/smartystreets/goconvey”
核心API
顶层Convey:由测试描述、testing.T,行为函数组成。
Convey(description string, t *testing.T, action func())
其他层Convey:
Convey(description string, action func())
值断言:判断actual值是否符合预期。
func So(actual any, assert Assertion, expected ...any)
actual:实际值。
Assertion:断言条件,一般为ShouldXXX组成,
expect:预期值。
convey运行顺序
由树形结构进行遍历
Convey A
So 1
Convey B
So 2
Convey C
So 3
执行顺序:1 A->B 、2 A->C
代码示例
1.测试x++
func TestGetSumScore(t *testing.T) {
Convey("start x is 0", t, func() {
x := 0
Convey("x++", func() {
x++
So(x, ShouldEqual, 1)
})
})
}
2.使用多层嵌套:测试GetSumScore函数
GetSumScore函数实现:
type Student struct {
ID int64
Name string
Age int8
Major string
Score int
}
// 返回这些学生的分数总和
func GetSumScore(students []Student) int {
total := 0
for _, v := range students {
total += v.Score
}
return total
}
测试代码:
func TestGetSumScore(t *testing.T) {
convey.Convey("init students", t, func() {
students := []Student{
{Name: "yi", Score: 90},
{Name: "w", Score: 100},
}
score := GetSumScore(students)
convey.Convey("GetSumScore", func() {
convey.So(score, convey.ShouldEqual, 190)
})
convey.Convey("Change students[0].score", func() {
students[0].Score = 10
score := GetSumScore(students)
convey.So(score, convey.ShouldEqual, 110)
})
})
}
来源:https://blog.csdn.net/weixin_44866921/article/details/130742368
标签:Golang,测试框架,goconvey,单元测试
0
投稿
猜你喜欢
perl获取日期与时间的实例代码
2023-03-30 23:57:01
php出现Cannot modify header information问题的解决方法大全
2024-05-02 17:35:21
Python实现对百度云的文件上传(实例讲解)
2022-04-16 03:15:46
一个简单的ASP计数器代码
2010-04-24 15:49:00
用Python实现一个模仿UP主弹幕控制的直播间功能
2023-02-24 18:13:27
HTML5 的五个激动人心的特性
2009-01-02 17:36:00
Javascript中Eval函数的使用
2024-03-24 19:55:23
Go语言中嵌入C语言的方法
2024-04-25 15:05:50
Python开发毕设案例之桌面学生信息管理程序
2021-03-02 14:56:08
Python 用户输入和while循环的操作
2023-07-22 22:17:33
python中dict获取关键字与值的实现
2022-03-11 14:00:42
mysql 中文乱码 解决方法集锦
2024-01-28 06:05:29
如何在pycharm中安装第三方包
2021-10-13 21:30:01
总结用Pdb库调试Python的方式及常用的命令
2023-03-11 02:09:53
python正则表达式匹配IP代码实例
2022-01-03 00:25:52
使用Python实现将list中的每一项的首字母大写
2023-01-07 15:05:04
Python动态导入模块的方法实例分析
2022-06-08 17:56:45
账户名和密码漏输或误输的文字提示
2009-06-24 14:28:00
PyCharm设置中文(汉化与解除汉化)的方法
2021-02-04 19:11:30
Python实现将数据写入netCDF4中的方法示例
2023-12-30 15:51:18