单元测试与基准测试

1、单元测试:
Go 语言的测试工具只会认为以_test.go 结尾的文件是测试文件。
测试函数必须是公开的函数,以Test 单词开头,且函数的参数必须接收一个指向testing.T类型的指针,并且不返回任何值。

func TestDownload(t *testing.T){
    // xxx
}

t.Fatal 不但报告这个单元测试已经失败,而且会向测试输出写一些消息,并立刻停止这个测试函数的执行。
t.Error 方法会报告测试失败,但是并不停止当前测试函数的执行
调用go test -v运行测试


2、基准测试:

        基准测试是一种测试代码性能的方法。也可以用来识别某段代码的CPU或者内存效率问题,基准测试的文件名也必须以_test.go 结尾,同时也必须导入testing 包,基准测试函数必须以 Benchmark 开头,接受一个指向 testing.B 类型的指针作为唯一参数。
基准测试框架默认会在持续 1 秒的时间内,反复调用需要测试的函数,并且一定要将所有要进
行基准测试的代码都放到循环里,并且循环要使用 b.N 的值。

func BenchmarkSprintf(b *testing.B) {
 number := 10

 b.ResetTimer()

 for i := 0; i < b.N; i++ {
 fmt.Sprintf("%d", number)
 }
}
go test -v -run="none" -bench="BenchmarkSprintf" -benchtime="3s"

go test -v -run="none" -bench=. -benchtime="3s"


-run 选项传递了字符串"none",来保证在运行制订的基
准测试函数之前没有单元测试会被运行
-benchtime 修改默认的时间

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值