golang学习笔记014--单元测试

目录

  • 1.基本介绍
  • 2.快速入门

1.基本介绍

go语言自带有一个轻量级的测试框架testing和自带的go test命令来实现单元测试和性能测试,通过单元测试,可以解决如下问题:
●确保每个函数是可运行的,并且运行结果是正确的
● 确保写出来的代码性能是好的
●单元测试能及时发现程序设计或实现的逻辑错误,使问题及早暴露,便于问题的定位解决,而性能测试的重点在于发现程序设计上的一些问题,让程序在高并发下还能保持稳定

2.快速入门

创建cal.go

	package cal
	
	//一个被测试的函数
	func addUpper(n int) int {
		res := 0
		for i := 0; i < n+1; i++ {
			res += i
		}
		return res
	}
	
	//求两个数的和
	func getSub(n1 int, n2 int) int {
		return n1 - n2
	}

创建cal_test.go

	package cal
	
	import (
		"fmt"
		"testing" //go的testing框架包
	)
	
	//测试addUpper是否正确
	func TestAddUpper(t *testing.T) {
		//调用
		res := addUpper(10)
		if res != 55 {
			t.Fatalf("addUpper(10)执行错误,期望值=55 实际值=%v\n", res)
		}
		//如果正确,输出日志
		t.Logf("addUpper(10)执行正确")
	}
	
	func TestGetSub(t *testing.T) {
		res1 := getSub(20, 10)
		fmt.Println("正确", res1)
	
	}

使用go test -v 执行
正确的结果:
golang学习笔记014--单元测试_第1张图片
错误的结果
golang学习笔记014--单元测试_第2张图片
3.入门总结
golang学习笔记014--单元测试_第3张图片
golang学习笔记014--单元测试_第4张图片

  1. 测试用例文件名必须以 _test.go结尾,比如cal_test.go,cal不是固定的
  2. 测试用例必须以Test开头,一般来说就是TestXxx,第一个字母不能是[a-z],比如TestAddUpper
  3. TestAddUpper(t *testing T)的形参类型必须是 *testing.T
  4. 一个测试用例文件中,可以有多个测试用例函数
  5. go test 如果运行正确,无日志,错误时,会输出日志
  6. go test -v 运行正确或错误都输出日志
  7. 当出现错误时,可以使用 Fatalf 来格式化输出错误信息,并退出程序。调用 Fatalf 相当于在调用 Logf 之后调用 FailNow 。FailNow会停止执行该函数
  8. t.Logf方法可以输出相应的日志
  9. 测试用例函数,并没有放在main中也执行了,这就是测试用例方便之处
  10. PASS表示测试用例运行成功,FAIL表示测试用例运行失败
  11. 测试单个文件,一定要带上被测试的原文件:go test -v cal_test.go cal.go
  12. 测试单个方法:go test -v -test.run TestAddUpper

你可能感兴趣的:(golang,单元测试,golang,开发语言)