go test 基本知识理解

go test 笔记

测试代码链接:
https://github.com/hyper0x/Golang_Puzzlers/tree/master/src/puzzlers/article20
https://github.com/hyper0x/Golang_Puzzlers/tree/master/src/puzzlers/article21

go程序编写三类测试:

  1. 功能测试test
  2. 基准测试benchmark也称性能测试
  3. 示例测试example

测试源码文件:放在同级目录下、并且以 源文件名+test 为测试文件名
例如:
demo52.go
demo52_test.go

每个测试源码文件 都必须至少包含一个测试函数

go语言对测试函数的名称和签名规定:
  • 功能测试函数: 名称必须以 Test为前缀、并且唯一参数的类型必须是 *testing.T 类型的参数声明
  • 性能测试函数: 名称必须以Benchmark为前缀、并且唯一参数的类型必须是 *testing.B
  • 示例测试函数: 名称必须以Example为前缀、但对参数列表没有强制规定
go test命令执行的主要测试流程是什么?

只有测试源码文件的名称对了,测试函数的名称和签名也对了,当我们运行go test命令的时候,其中的测试代码才有可能被运行
go test命令在开始运行时,会先做一些准备工作,比如,确定内部需要用到的命令,检查我们指定的代码包或源码文件的有效性,以及判断我们给予的标记是否合法,等等
在准备工作顺利完成之后,go test命令就会针对每个被测代码包,依次地进行构建、执行包中符合要求的测试函数,清理临时文件,打印测试结果
对于每个被测代码包,go test命令会串行地执行测试流程中的每个步骤
但是,为了加快测试速度,它通常会并发地对多个被测代码包进行功能测试,只不过,在最后打印测试结果的时候,它会依照我们给定的顺序逐个进行,这会让我们感觉到它是在完全串行地执行测试流程。
另一方面,由于并发的测试会让性能测试的结果存在偏差,所以性能测试一般都是串行进行的。更具体地说,只有在所有构建步骤都做完之后,go test命令才会真正地开始进行性能测试
并且,下一个代码包性能测试的进行,总会等到上一个代码包性能测试的结果打印完成才会开始,而且性能测试

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值