文档章节

Go 语言基础——go语言如何优雅的进行测试

刘一草
 刘一草
发布于 08/21 13:52
字数 677
阅读 6
收藏 0

我们可以为Go程序编写三类测试,即:功能测试(test)、基准测试(benchmark),也称性能测试(example)

测试文件的约定

  1. 测试文件的主名称应该以被测试文件主名称为先导,并且以_test为后缀。例:demo.go 的测试文件名称应为demo_test.go。
  2. 一般情况下一个测试文件只给一个源码文件做测试,demo_test.go只测试demo.go文件。
  3. 测试文件与被测试文件应该放在同一个代码包内

函数的名称和签名的规定

  1. 对于功能测试函数来说,其名称必须以Test为前缀,并且参数列表中只应有一个*testing.T类型的参数声明。
  2. 对于性能测试函数来说,其名称必须以Benchmark为前缀,并且唯一参数的类型必须是*testing.B类型的。
  3. 对于示例测试函数来说,其名称必须以Example为前缀,对函数的参数列表没有强制规定。
package demo

import (
	"fmt"
	"testing"
)
//功能测试
func TestMethod(t *testing.T)  {
	fmt.Println("function test")
}
//基准测试
func BenchmarkMethod(b *testing.B)  {
	fmt.Println("benchmark test")
}
//性能测试
func Examplemethod(t *testing.T)  {
	fmt.Println("example test")
}
func Method(t *testing.T)  {
	fmt.Println("Method")
}

go test 命令

go test 命令,会自动读取源码目录下面名为 *_test.go 的文件,生成并运行测试用的可执行文件。

运行go test 命令会运行符合规定的测试代码;

go test命令就会针对每个被测代码包,依次地进行构建、执行包中符合要求的测试函数,清理临时文件,打印测试结果。

命令:

go test demo #go test [目录]

这里是否读缓存不会影响我们的测试结果,如果想清初缓存可以执行: go clean -cache

性能测试
#格式:go test -bench=. -run=^$ [目录]
go test -bench=. -run=^$ demo

-bench= 指要进行性能测试

. 需要执行任意名称的性能测试函数(符合规则)

-run=^$ 需要执行哪些功能的测试函数

^$ 只执行名称为空的功能测试函数(不执行任何功能函数)

输出的内容:

function test benchmark test goos: windows goarch: amd64 pkg: demo BenchmarkMethod-8 benchmark test benchmark test benchmark test benchmark test benchmark test 2000000000 0.00 ns/op PASS ok demo 0.262s


**** 码字不易如果对你有帮助请给个关注****

**** 爱技术爱生活 QQ群: 894109590****

© 著作权归作者所有

刘一草
粉丝 2
博文 39
码字总数 35134
作品 0
东城
私信 提问
JavaScript 和服务器端方向推荐书单(附简评)

我一直以来读书是获取知识最好的方式,很长时间以来,我都在博客维护了一个 推荐书单,最近又做了一些整理,为每本书都添加了简评,希望能对大家有帮助,当然如果能用我的推广链接购书就再好...

eapxuo
2018/02/09
0
0
「ThinkPHP开发者周刊」第15期——ThinkPHP十三周年专刊

[ 本周读数 ] —— ThinkPHP十三周年庆 1月15日是ThinkPHP发布13周年纪念,真的是十年弹指一挥间,这个国民PHP框架是如何诞生和发展起来的,来看看ThinkPHP十三周年的报告吧! [ 新闻/资讯 ...

流年
01/15
252
1
每个优秀程序员必须具备的技术技能

版权声明:本文为北京尚学堂原创文章,未经允许不得转载。 也许你可以成为一名优秀的管理人员或指导人员,作为程序员如果你不能编写代码和开发软件,但不会是软件开发人员。 如果你正在阅读这...

SXTkaifa
2016/11/01
115
0
每个优秀程序员必须具备的技能

版权声明:本文为北京尚学堂原创文章,未经允许不得转载。 也许你可以成为一名优秀的管理人员或指导人员,作为程序员如果你不能编写代码和开发软件,但不会是软件开发人员。 如果你正在阅读这...

SXTkaifa
2016/10/31
27
0
最优秀的9本开源 C 语言书籍

最优秀的9本开源 C 语言书籍 程序师2017-02-1484 阅读 C语言业界观察 书是非常私人的东西,编程类书籍也不例外。我们都是通过阅读书籍来帮助掌握某种语言的基本知识。随后又通过阅读书籍来全...

程序师
2017/02/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

100天搞定机器学习|Day55 最大熵模型

1、熵的定义 熵最早是一个物理学概念,由克劳修斯于1854年提出,它是描述事物无序性的参数,跟热力学第二定律的宏观方向性有关:在不加外力的情况下,总是往混乱状态改变。熵增是宇宙的基本定...

机器学习算法与Python实战
14分钟前
3
0
找子表

select a.constraint_name, a.table_name, b.constraint_name from user_constraints a, user_constraints b where a.constraint_type = 'R' and b.constraint_type = 'P' and a.r_constrain......

兵荒马乱的青春
16分钟前
4
0
Web应用安全如何防御或者检查漏洞?

     Web应用安全如何防御或者检查漏洞?这是大家一直关心的问题。随着计算机技术的发展,网络漏洞也变得越来越多样化了,你知道吗,每隔9 小时就会发布 1 个严重漏洞,并且有可能会进行远...

梅丽莎好
24分钟前
3
0
Vim 复制粘帖格式错乱问题的解决办法

有时候,复制文本(尤其是代码)到 Vim,会出现格式错乱的问题。看样子,应该是自动缩进惹得祸。本文不去深究原因,直接给出解决方法。 1. paste 模式 运行如下命令,进入 paste 模式: :set...

观海562
25分钟前
3
0
OSM初识(三)OSM Data

一 导出数据 将XML格式的OSM数据转换成另一种格式。 二 提取数据 剪切你选择区域内的数据,或者提取出特定区域特定的特征 三 数据格式 OSM文件仅属于OSM,不能用别的软件打开。其中后缀为bz2...

yuankaichao
35分钟前
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部