go test
testing 是go中自动测试的包, 直接import就可以使用, 使用时需要注意以下规范
执行测试函数的文件必须以 _test.go 结尾, 注意下划线
单元测试函数名必须以 Test 开头, 并且Test后的第一个字符要大写, 函数的参数只能有一个 *testing.T
基准测试必须以 Benchmark 开头, 同样Benchmark后的第一个字符要大写, 函数的参数也只有一个 *testing.B
package main import (
"testing"
) func TestAdd(t *testing.T) { //函数名必须以"Test" 开头, Test后的第一个字符"A"必须要大写, 参数只有一个, 没有返回值
a, b := 10, 20
c := Add(a, b)
if c != 30 {
t.Fatalf("c========%d", c) //实际返回值与预期返回值不一样(业务函数错误), Fatal输出日志, 并且会直接退出函数
}
t.Log("Add pass.................") //Log不会退出函数
} func BenchmarkAdd(b *testing.B) { //规范基本与Test相同
a, d := 10, 20
for i := 0; i < b.N; i++ {
Add(a, d)
}
} -----------------Add函数--------------------
func Add(a, b int) (sum int) {
sum = a + b
return
}
随机推荐
- JS中精选this关键字的指向规律你记住了吗
1.首先要明确: 谁最终调用函数,this指向谁 this指向的永远只可能是对象!!!!! this指向谁永远不取决于this写在哪,而取 ...
- Linux下的输入/输出重定向
Linux环境中支持输入输出重定向,用符号<和>来表示.0.1和2分别表示标准输入.标准输出和标准错误信息输出,可以用来指定需要重定向的标准输入或输出,比如 2>lee.dat 表示 ...
- Python 的內建模块
>>> import __builtin__>>> dir(__builtin__)['ArithmeticError', 'AssertionError', 'A ...
- 20165203《Java程序设计》第三周学习总结
教材学习内容总结 1.类: (1)类的声明:class+类名 (2)类体:成员变量的声明+方法(局部变量+语句) 注意: 方法体内声明的局部变量只在方法内有效和书写位置有关. 局部变量和成员变量同名: ...
- gtk+学习笔记(四)
今天看了下单选按钮的设置,实现起来还是挺简单的,就是自己太不熟练 radio=gtk_radio_button_new_with_label(NULL,"a"); //第一次创建单 ...
- day10--异步IO\数据库\队列\缓存
上节回顾: 线程 vs 进程 https://www.cnblogs.com/alex3714/articles/5230609.html https://www.cnblogs.com/alex ...
- HDU - 4420 2013icpc长春A 函数离散化 + st表
思路:我们定义F(x) 为以x点为起点,向后(a - b)个里面有多少个白球,虽然x的范围是LL范围内的,但是白球的 个数只有1e5, 那么我们可以把连续一段相同的离散化到一起, 对于一个确定的长度为 ...
- 8-10 Coping Books uva714
题意:把一个包含m个正整数的序列划分为k个 1<=k<=m<=500的非空连续子序列 使得每个正整数恰好属于一个序列 设第i个序列的各个数之和为 Si 你的任务是让所有的 ...
- scp和rsync的区别和常用参数
一.scp 命令 1.scp 是 secure copy 的缩写,用于远程的文件的复制. 2.参数: -r: 递归复制整个目录. 3.实例: scp /home/space/music/1.mp3 u ...
- (四)静态断言(上),assert,NDEBUG, 以及通过宏定义处理文件包含关系
一.断言:运行时与预处理时 断言(assertion)是一种编程常用的手段.想必大家都见过 assert 吧.今天我们就来了解一下它. 通常情况下,断言就是将一个返回值总是需要为真的判别式放在语句中, ...