美文网首页
Go 语言基础——go语言如何优雅的进行测试

Go 语言基础——go语言如何优雅的进行测试

作者: 刘彦青 | 来源:发表于2019-08-21 13:52 被阅读0次

我们可以为Go程序编写三类测试,即:功能测试(test)、基准测试(benchmark),也称性能测试(example)

测试文件的约定

  1. 测试文件的主名称应该以被测试文件主名称为先导,并且以_test为后缀。例:demo.go 的测试文件名称应为demo_test.go。
  2. 一般情况下一个测试文件只给一个源码文件做测试,demo_test.go只测试demo.go文件。
  3. 测试文件与被测试文件应该放在同一个代码包内

函数的名称和签名的规定

  1. 对于功能测试函数来说,其名称必须以Test为前缀,并且参数列表中只应有一个*testing.T类型的参数声明。
  2. 对于性能测试函数来说,其名称必须以Benchmark为前缀,并且唯一参数的类型必须是*testing.B类型的。
  3. 对于示例测试函数来说,其名称必须以Example为前缀,对函数的参数列表没有强制规定。
package demo

import (
    "fmt"
    "testing"
)
//功能测试
func TestMethod(t *testing.T)  {
    fmt.Println("function test")
}
//基准测试
func BenchmarkMethod(b *testing.B)  {
    fmt.Println("benchmark test")
}
//性能测试
func Examplemethod(t *testing.T)  {
    fmt.Println("example test")
}
func Method(t *testing.T)  {
    fmt.Println("Method")
}

go test 命令

go test 命令,会自动读取源码目录下面名为 *_test.go 的文件,生成并运行测试用的可执行文件。

运行go test 命令会运行符合规定的测试代码;

go test命令就会针对每个被测代码包,依次地进行构建、执行包中符合要求的测试函数,清理临时文件,打印测试结果。

命令:

go test demo #go test [目录]

这里是否读缓存不会影响我们的测试结果,如果想清初缓存可以执行: go clean -cache

性能测试
#格式:go test -bench=. -run=^$ [目录]
go test -bench=. -run=^$ demo

-bench= 指要进行性能测试

. 需要执行任意名称的性能测试函数(符合规则)

-run=^$ 需要执行哪些功能的测试函数

^$ 只执行名称为空的功能测试函数(不执行任何功能函数)

输出的内容:

function test
benchmark test
goos: windows
goarch: amd64
pkg: demo
BenchmarkMethod-8 benchmark test
benchmark test
benchmark test
benchmark test
benchmark test
2000000000 0.00 ns/op
PASS
ok demo 0.262s


**** 码字不易如果对你有帮助请给个关注****

**** 爱技术爱生活 QQ群: 894109590****

相关文章

  • Go 语言基础——go语言如何优雅的进行测试

    我们可以为Go程序编写三类测试,即:功能测试(test)、基准测试(benchmark),也称性能测试(examp...

  • go语言基础

    go语言基础 go 语言接口

  • 初识Go语言-1

    Go语言学习路径 初识Go语言 Go语言环境搭建与IDE安装 Go语言基础语法 Go语言数据类型 Go语言变量和常...

  • GO学习笔记(17) -测试

    测试工具 —go test go test命令用于对Go语言编写的程序进行测试。 测试规范 测试文件必须为"_te...

  • Go语言入坑

    GO语言基础 认识并安装GO语言开发环境 Go语言简介 Go语言是谷歌2009年发布的第二款开源编程语言 go语言...

  • Go语言之旅:快速开始

    Go是一门优雅的语言,同时兼顾了开发效率和执行性能。那么,如何开发Go语言程序呢? 原文地址:https://go...

  • Go语言 异常panic和恢复recover用法

    背景:Go语言追求简洁优雅,所以,Go语言不支持传统的 try…catch…finally 这种异常,因为Go语言...

  • panic recover的应用(golang)

    Go语言追求简洁优雅,所以,Go语言不支持传统的 try…catch…finally 这种异常,因为Go语言的设计...

  • 12.包

    在工程化的Go语言开发项目中,Go语言的源码复用是建立在包(package)基础之上的。本文介绍了Go语言中如何定...

  • Go语言基础之包

    在工程化的Go语言开发项目中,Go语言的源码复用是建立在包(package)基础之上的。本文介绍了Go语言中如何定...

网友评论

      本文标题:Go 语言基础——go语言如何优雅的进行测试

      本文链接:https://www.haomeiwen.com/subject/nqbbsctx.html