Go 语言圣经 第十一章 测试

/**
第十一章 测试

Go语言的测试技术是相对低级的
它依赖一个go test测试命令和一组按照约定方式编写的测试函数,测试命令可以运行这些测试函数
编写相对轻量级的纯测试代码是有效的,而且它很容易延伸到基准测试和示例文档

*/

11.1 go test

知识点

  • 1.go test命令是一个按照一定的约定和组织来测试代码的程序
  • 2.有三种类型的函数:测试函数、基准测试(benchmark)函数、示例函数
  • 3.go test命令会遍历所有的*_test.go文件中符合上述命名规则的函数

11.2 测试函数

知识点

  • 1.每个测试函数必须导入testing包
  • 2.测试函数的名字必须以Test开头,可选的后缀名必须以大写字母开头, func TestSin(t testing.T) { / … */ }
  • 3.go test命令如果没有参数指定包那么将默认采用当前目录对应的包
  • 4.参数-run对应一个正则表达式,只有测试函数名被它正确匹配的测试函数才会被go test测试命令运行
  • 5.参数-v可用于打印每个测试函数的名字和运行时间
  • 6.调用log.Fatal或os.Exit这些函数的特权应该放在main函数中
  • 7.用go list命令查看包对应目录中哪些Go源文件是产品代码,哪些是包内测试,还有哪些是外部测试包

11.3 测试覆盖率

知识点

  • 1.go tool命令运行Go工具链的底层可执行程序
  • 2.-coverprofile标志参数,将待测代码拷贝一份并做修改,在每个词法块都会设置一个布尔标志变量
  • 3.-covermode=count标志参数,将在每个代码块插入一个计数器而不是布尔标志量

11.4 基准测试

知识点

  • 1.基准测试是测量一个程序在固定工作负载下的性能
  • 2.-bench命令行标志参数手工指定要运行的基准测试函数,该参数是一个正则表达式,用于匹配要执行的基准测试函数的名字,默认值是空的
  • 3.快的程序往往是伴随着较少的内存分配
  • 4.-benchmem命令行标志参数将在报告中包含内存的分配数据统计
  • 5.比较型的基准测试就是普通程序代码。它们通常是单参数的函数,由几个不同数量级的基准测试函数调用

11.5 剖析

知识点

  • 1.剖析技术是基于程序执行期间一些自动抽样,然后在收尾时进行推断;最后产生的统计结果就称为剖析数据
  • 2.Go语言支持多种类型的剖析性能分析,每一种关注不同的方面
  • 3.CPU剖析数据标识了最耗CPU时间的函数
  • 4.堆剖析则标识了最耗内存的语句
  • 5.阻塞剖析则记录阻塞goroutine最久的操作
  • 6.参数-text用于指定输出格式,在这里每行是一个函数,根据使用CPU的时间长短来排序
  • 7.参数-web用于生成函数的有向图,标注有CPU的使用和最热点的函数等信息

11.6 示例函数

知识点

  • 1.第三种被go test特别对待的函数是示例函数,以Example为函数名开头
  • 2.示例函数有三个用处:1.作为文档,2.在go test执行测试的时候也会运行示例函数测试,3.提供一个真实的演练场
------不足之处,欢迎补充------
备注

《Go 语言圣经》

  • 学习记录所使用的GO版本是1.8
  • 学习记录所使用的编译器工具为GoLand
  • 学习记录所使用的系统环境为Mac os
  • 学习者有一定的C语言基础

代码仓库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值