Golang测试用例和cp程序制作基准测试注意事项

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

test测试用例

测试用例的文件名必须以XXX_test.go的格式.
cp程序制作q<115.28.8.00.9.9>
文件名的XXX不必一定和被测试文件的名称一样,但是保持一致是一个很好的习惯.
测试用例中的测试函数名必须是TestXXX(t *testing.T)如此定义,否则不执行
每一个test文件必须要import一个testing包
go test或者go test -v命令测试当前包目录下的所有的tests
用t.Errorf来打印错误信息,会输出错误信息,并且跳过当前测试函数
t.SkipNow()跳过当前测试并且直接按PASS处理继续下一个test
go的test不会保证多个TestXXX()是顺序执行的,但是通常会顺序执行
要保持顺序执行需要使用subTest,即在test内使用t.Run()来顺序调用要测试的test函数,一般被调用的test,会把函数名定位testXXX,这样的话就不会自动运行testXXX,而是被t.Run()来调用
使用TestMain(m *tesging.M)作为初始话test,并且使用m.Run()来调用其他test可以完成一些初始话操作的testing,该函数必须调用m.Run()
如果没有在TestMain中调用m.Run()则除了testMain之外的所有其他test都不会执行

package main
import(
"testing"
"fmt"
)

//因为是小写开头所以不会运行
func testPrint(t testing.T){
//该方法可以跳过当前函数的测试,并通过测试
t.SkipNow()
res := MyFunc()
if res {
t.Errorf("wrong")
}
}
//因为是小写开头所以不会运行
func testprint1(t
testing.T){
res := MyFunc()
if !res {
t.Errorf("wrong 1")
}
}

func TestAll(t *testing.T){
//使用t.Run()调用函数来做顺序执行
t.Run("TestPrint", testPrint)
t.Run("TestPrint1", testPrint1)
}

//初始化函数,首先运行该函数
func TestMain(m *testing.M){
fmt.Println("this is Main func")
//必须要调用该函数,否则除了TestMain()其他函数都不会执行
m.Run()
}


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

本文来自:51CTO博客

感谢作者:有我也有你

查看原文:Golang测试用例和cp程序制作基准测试注意事项

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

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