golang-单元测试


golang提供了非常方便的单元测试方法,本文就为大家梳理一下golang中单元测试的方法以及注意事项。

1. 代码示例

先来看一个案例

//创建一个文件名:operation_test.go 的文件
package main

import "testing"

//一个简单的相加返回结果的函数
func AddUpper(n int) int {
	res := 0
	for i := 1; i <= n; i++{
		res += i
	}
	return res
}

//对AddUpper执行测试
func TestAddUpper(t *testing.T){
	res := Test_addUpper(10)
	if res != 55{
		t.Fatalf("执行错误")
	}
	t.Log("正确")
}

程序运行结果:
=== RUN   TestAddUpper
--- PASS: TestAddUpper (0.00s)
    operation_test.go:10: 正确
PASS

2. 基本介绍

golang中的单元测试是通过轻量级的测试框架testing和自带的go test命令来实现单元测试性能测试官方中文文档

单元测试的目的:

  • 确保编写的函数是可以运行的,而且逻辑结果是正确的
  • 确保函数性能在预期范围

在刚接触单元测试时我也有同样的疑惑,这东西好像也没什么用?但是后来在写项目的过程中发现当程序功能逐渐复杂,调用部分逐渐增多时,良好接口测试就显示出了巨大的威力。还需要大家在项目中不断体会。

3. 细节与注意事项

  1. 测试用例文件名必须以 _test.go 结尾。
  2. 测试用例函数必须以 Test 开头,一般来说就是 Test+被测试的函数名,比如 TestAddUpper而且Test后接的字母必须是大写。
  3. TestAddUpper(t *tesing.T)的形参类型必须是*testing.T
  4. 一个测试用例文件中,可以有多个测试用例函数。
  5. 运行指令go test [-v]。加-v会不管正确和错误都输出日志。
  6. 当出现错误时,可以使用 t.Fatalf来格式化输出错误信息,并退出程序
  7. t.Logf方法可以输出相应的日志。
  8. PASS 表示测试用例运行成功,FAIL表示测试用例运行失败。
  9. 测试单个文件,一定要带上被测试的原文件 go test -v add_test.go add.go
  10. 测试文件并不需要放在main包下,只要保证被测试函数所在的包和单元测试在同一包下即可

4. 单元测试原理

测试原理

发布了31 篇原创文章 · 获赞 25 · 访问量 7万+

猜你喜欢

转载自blog.csdn.net/s_842499467/article/details/104392331