golang中的单元测试

本文介绍了Go语言中的单元测试,包括测试文件、测试函数、基准函数和示例函数的使用。强调了单元测试在代码质量中的重要性,并提供了相关命令的详细说明,帮助开发者更好地理解和实践Go的测试哲学。
摘要由CSDN通过智能技术生成

优秀的代码习惯一定是伴随着单元测试的,这也是go语言设计的哲学;

国外的很多公司很多优秀的程序员都比较重视TDD,但是在国内十分少见;(TDD:测试驱动开发(test driven devlopment))

无论如何,学习并使用golang的单元测试,不是浪费时间,而是让你的代码更加优雅健硕!

测试文件

文件名以_test.go为后缀的文件均为测试代码,都会被go test测试捕捉,不会被go build编译;

测试函数

测试文件中的三种函数类型:

  • 单元测试函数:函数名前缀Test;测试程序的逻辑
  • 基准函数:函数名前缀Benchmark;测试函数的性能
  • 示例函数:函数名前缀Example;会出现在godoc中的,为文档提供示例文档

测试命令

Go语言中的测试依赖go test命令;在此命令下添加各种不同的参数以实现不同目的的测试;后面会一一介绍;

go test命令会遍历所有的*_test.go文件中符合上述命名规则的测试函数

然后生成一个临时的main包用于调用相应的测试函数,然后构建并运行、报告测试结果,最后清理测试中生成的临时文件;


接下来分别介绍单元测试函数、基准函数、示例函数:

单元测试函数

  • 单元测试函数的格式:

    1. func TestName(t *testing.T) {}
    2. 函数的名字必须以Test开头,可选的后缀名必须以大写字母开头
    3. 每个测试函数必须导入testing包;关于testing包中的方法可以去看一下源码;
    4. 参数t用于报告测试失败和附加的日志信息
  • 一个简单的测试函数示例:将输出的结果预期的结果进行比较

    1. 创建业务函数

      // 文件split/split.go:定义一个split的包,包中定义了一个Split函数
      package split
      
      import "strings"
      
      func Split(s, sep string) (result []string) {
      	i := strings.Index(s, sep)
      	for i > -1 {
      		result = append(result, s[:i])
      		s = s[i+1:]
      		i = strings.Index(s, sep)
      	}
      	result = append(result, s)
      	return
      }
      
      
    2. 创建测试文件

      // 文件split/split_test.go:创建一个split_test.go的测试文件
      package split
      
      import (
      	"reflect"
      	"testing"
      )
      
      //
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值