首页 文章 Go语言基础 简单使用Golang的Test
0
0
0
3

简单使用Golang的Test

标准库 Golang Test

golang的test使用起来也是比较方便简单的

要求:
①第一部当然是要导包了,少不了"testing"包
②test用例的函数名必须要以"TestXxx"的形式命名,否则golang会识别不出来直接跳过不测试
③test的传入参数必须为"t *testing.T"(测试功能测试函数)或"b *testing.B"(Benchmark——测试性能测试函数)
④t.Errorf为打印错误信息,并且当前的test case会被跳过
⑤t.SkipNow()为跳过当前的test,并把这个test按照pass处理然后去执行下一个test,不过这个t.SkipNow()要求必须写在函数体内的第一句

命令:一般常用"go test"或"go test -v"执行,后者会打印详细信息
例如:

//main.go
package main
func Abc() int {
	sum := 0
	for i := 1; i <= 100; i++ {
		sum += i
	}
	return sum
}
//main_test.go
package main
import (
	"fmt"
	"testing"
)
func TestAbc(t *testing.T) {
	res := Abc()
	if res != 5050 {
		t.Errorf("wrong result")
	}
	fmt.Println("ok")
}

当命令行键入"go test"

当命令行键入"go test -v",打印了更加详细的信息

上面的例子是以参数"t *testing.T"举例的,一般用来写功能测试函数,下面讲讲性能测试函数Benchmark。
①benchmark函数一般以Benchmark开头,而且参数要改成"b *testing.B"
②benchmark的test case一般会跑b.N次,而且每次执行都会跑这么多次,这个b.N并不是一个固定的次数,而是根据程序的复杂程度而调整
③要注意的是,benchmark在执行过程中会根据实际test case的执行时间是否稳定会增加b.N的次数以达到稳态

//main_test.go
package main
import (
	//"fmt"
	"testing"
)
func BenchmarkAll(b *testing.B) {
	for i := 0; i < b.N; i++ {
		TestAbc()
	}
}

命令行键入"go test -bench=."

可以看到这个benchmark的执行,执行次数为5000000,平均每次执行时间为292ns

到此这篇关于“简单使用Golang的Test”的文章就介绍到这了,更多文章或继续浏览下面的相关文章,希望大家以后多多支持Go语言编程网!

相关文章

创建博客

开始创作
写作能提升自己能力,也能为他人分享知识。

在线教程

查看更多
  • Go入门指南

    Go入门指南

  • Go语言高级编程

    Go语言高级编程

  • Go Web 编程

    Go Web 编程

  • GO专家编程

    GO专家编程

  • Go语言四十二章经

    Go语言四十二章经

  • 数据结构和算法(Golang实现)

    数据结构和算法(Golang实现)

Go语言编程网

微信扫码关注订阅号


博客 资讯 教程 我的