Golang 单元测试

Jackey Golang 3,287 次浏览 , 没有评论

在package main里定义一个函数Add,求两个数之和的函数,然后我们使用单元测试进行求和逻辑测试。单元测试的最常见以及默认组织方式就是写在以 _test.go 结尾的文件中,所有的测试方法也都是以 Test 开头并且只接受一个 testing.T 类型的参数

main.go

  1. package main
  2.  
  3. func Add(a,b int) int{
  4. return a+b
  5. }

main_test.go

  1. package main
  2.  
  3. import "testing"
  4.  
  5. func TestAdd(t *testing.T) {
  6. sum := Add(1,2)
  7. if sum == 3 {
  8. t.Log("the result is ok")
  9. } else {
  10. t.Fatal("the result is wrong")
  11. }
  12. }

然后我们在终端的项目目录下运行go test -v就可以看到测试结果了。

  1. === RUN TestAdd
  2. --- PASS: TestAdd (0.00s)
  3. main_test.go:16: the result is ok
  4. PASS
  5. ok test/test 0.486s

Go语言为我们提供了测试框架,以便帮助我们更容易的进行单元测试,但是要使用这个框架,需要遵循如下几点规则:

  1. 含有单元测试代码的go文件必须以_test.go结尾,Go语言测试工具只认符合这个规则的文件
  2. 单元测试文件名_test.go前面的部分最好是被测试的方法所在go文件的文件名,比如例子中是main_test.go,因为测试的Add函数,在main.go文件里
  3. 单元测试的函数名必须以Test开头,是可导出公开的函数
  4. 测试函数的签名必须接收一个指向testing.T类型的指针,并且不能返回任何值
  5. 函数名最好是Test+要测试的方法函数名,比如例子中是TestAdd,表示测试的是Add这个这个函数
  6. 运行测试用力指令
    1. go test 如果运行正确无日志,错误有日志
    2. go test -v 运行正确或错误,都有日志
  7. 测试单个文件一定要带上被测试的原文件
    go test -v main_test.go mian.go
  8. 测试单个方法
    go test -v -test.run TestAdd

遵循以上规则,我们就可以很容易的编写单元测试了,单元测试的重点在于测试代码的逻辑,场景等,以便尽可能的测试全面,保障代码质量逻辑。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

Go