Golang:测试

174lxs · · 1076 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

单元测试、压力测试、性能测试

1、testing
testing包进行golang的单元测试,但testing也是有其限制性;
使用者要不断地写if else来判断显然麻烦;
使用gocheck单元测试框架

每个测试文件必须以 _test.go 结尾;
功能测试方法必须以 Test 开头,一般是接被测方法的名字;

go test -v //可以看到详细的输出信息。   
go test -v -cover //显示覆盖的声明程度

2、gocheck
gocheck作为golang的一种测试框架,可以直接继承go test使用

常见检查方法(Checker)
DeepEquals 全等校验,类型必须相同,校验比较严格,一般很少使用,因为校验结果失败的概率比较高;
Equals 相当于 ==校验,比全等校验相对来说要宽松一点;
FitsTypeOf 校验类型是否一致;
HasLen 校验长度是否一致;
IsNil 校验返回值是否为空;

Assert 根据预期 Checker 值检验接口返回值与预期值是否匹配,如果它们不匹配,则会记录错误,测试记录不通过,并且测试用例将停止
如:c.Assert(42, Equals, Add(12, 30))


1、go test -v
查看测试信息
2、功能测试t *testing.T
文件名必须是_test.go结尾的
测试格式:func TestXxx (t *testing.T) Xxx首字母大写
测试函数TestXxx(t *testing.T)的参数是testing.T
t.Error("除法函数测试没通过") // 测试出错时,显示的信息
t.Log("第一个测试通过了") //测试通过时,显示的信息

3、性能测试b *testing.B
func BenchmarkXXX(b *testing.B) { ... }
go test -test.bench=Benchmark_Division //执行指定的测试函数
go test -test.bench=. //.表示执行所有测试函数
go test -test.bench=. -count=5 //-count指一个测试函数执行多少次
go test -test.bench=. -V //查看测试信息

4、go test不会默认执行压力测试的函数,如果要执行压力测试需要带上参数-bench,例如go test -bench=. 表示测试全部的压力测试函数


有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:174lxs

查看原文:Golang:测试

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1076 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传