在package main里定义一个函数Add,求两个数之和的函数,然后我们使用单元测试进行求和逻辑测试。单元测试的最常见以及默认组织方式就是写在以 _test.go 结尾的文件中,所有的测试方法也都是以 Test 开头并且只接受一个 testing.T 类型的参数
main.go
- package main
-
- func Add(a,b int) int{
- return a+b
- }
main_test.go
- package main
-
- import "testing"
-
- func TestAdd(t *testing.T) {
- sum := Add(1,2)
- if sum == 3 {
- t.Log("the result is ok")
- } else {
- t.Fatal("the result is wrong")
- }
- }
然后我们在终端的项目目录下运行go test -v就可以看到测试结果了。
- === RUN TestAdd
- --- PASS: TestAdd (0.00s)
- main_test.go:16: the result is ok
- PASS
- ok test/test 0.486s
Go语言为我们提供了测试框架,以便帮助我们更容易的进行单元测试,但是要使用这个框架,需要遵循如下几点规则:
- 含有单元测试代码的go文件必须以_test.go结尾,Go语言测试工具只认符合这个规则的文件
- 单元测试文件名_test.go前面的部分最好是被测试的方法所在go文件的文件名,比如例子中是main_test.go,因为测试的Add函数,在main.go文件里
- 单元测试的函数名必须以Test开头,是可导出公开的函数
- 测试函数的签名必须接收一个指向testing.T类型的指针,并且不能返回任何值
- 函数名最好是Test+要测试的方法函数名,比如例子中是TestAdd,表示测试的是Add这个这个函数
- 运行测试用力指令
- go test 如果运行正确无日志,错误有日志
- go test -v 运行正确或错误,都有日志
- 测试单个文件一定要带上被测试的原文件
go test -v main_test.go mian.go - 测试单个方法
go test -v -test.run TestAdd
遵循以上规则,我们就可以很容易的编写单元测试了,单元测试的重点在于测试代码的逻辑,场景等,以便尽可能的测试全面,保障代码质量逻辑。