go语言测试test

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

Go语言通过testing包提供自动化测试功能。包内测试只要运行命令 go test,就能自动运行符合规则的测试函数。
Go语言测试约定规则
1.一般测试func TestXxx(*testing.T)
测试行必须Test开头,Xxx为字符串,第一个X必须大写的[A-Z]的字幕
为了测试方法和被测试方法的可读性,一般Xxx为被测试方法的函数名。

2.性能测试func BenchmarkXxx(*testing.B)
性能测试用Benchmark标记,Xxx同上。

3.测试文件名约定
go语言测试文件名约定规则是必须以_test.go结尾,放在相同包下,为了方便代码阅读,一般go源码文件加上_test
比如源文件my.go 那么测试文件如果交your_test.go,her_test.go,my_test.go都可以,不过最好的还是my_test.go,方便阅读

举例,源文件my.go

package my

func add(x, y int) int {
	return x + y
}

 创建一个my_test.go文件,需要引入testing

package my

import "testing"

func TestAdd(t *testing.T) {
	if add(1, 2) != 3 {
		t.Error("test foo:Addr failed")
	} else {
		t.Log("test foo:Addr pass")
	}
}

func BenchmarkAdd(b *testing.B) {
	// 如果需要初始化,比较耗时的操作可以这样:
	// b.StopTimer()
	// .... 一堆操作
	// b.StartTimer()
	for i := 0; i < b.N; i++ {
		add(1, 2)
	}
}

 运行测试 go test,输出:

PASS

ok github.com/my 0.010s
要运行性能测试,执行命令
go test -test.bench=".*"
输出
PASS
BenchmarkAdd 2000000000 0.72 ns/op
ok github.com/my 1.528s

更多测试命名,用go help test
go的测试是不是很好很强大!^_^

文章出处: http://blog.gcove.net/go%E8%AF%AD%E8%A8%80%E6%B5%8B%E8%AF%95test.html


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

本文来自:ITEYE博客

感谢作者:lavafree

查看原文:go语言测试test

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

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