Go The Way 之 单元测试

Go testing

Go 语言中自带一个轻量级的测试框架testing和自带的go test 命令来实现单元测试和性能测试,testing框架和其他语言中的测试框架类似,可以基于
这个框架写针对相应函数的测试案例,也可以基于该框架写相应的压力测试用例、通过单元测试,可以解决如下问题:

  1. 确保每个函数时可运行的,并且运行结果是正确的
  2. 确保写出的代码性能是好的
  3. 单元测试能及时的发现程序设计或实现的逻辑错误,使问题及早暴露,便于问题的定位解决,而性能测试的重点再远发现程序设计上的一些问题,让程序
    能够在高并发的情况下海娜保持稳定。

https://studygolang.com/pkgdoc

Test 步骤

1、 要编写一个新的测试套件,需要创建一个名称以 _test.go 结尾的文件,该文件包含 TestXxx 函数
2、 文件内操作
import “testing”
testing 提供对 Go 包的自动化测试的支持。通过 go test 命令,能够自动执行如下形式的任何函数:
func TestXxx(*testing.T) 其中 Xxx 可以是任何字母数字字符串(但第一个字母不能是 [a-z]),用于识别测试例程。
3、 执行

  • go test 如果运行正确无日志,否则有详细日志
  • go test -v 运行正确或者错误都会输出日志
  • go test -v file_name1.go file_name2.go 执行某些文件的测试案例
  • go test -v -test.run FunctionName 测试某一个测试方法
    4、 输出日志
    当出现错误时,可以使用 t.Fatalf() 来格式化输出错误信息,并退出程序
    t.Logf() 可以格式化输出相应的日志
    5、结果:
    PASS 表示测试案例运行成功,FAIL 表示测试用例运行失败

案例

– 要测试的方法

package testingDemo

func Sum(a, b int) int {
	return a + b
}

– 测试方法

package main

import (
	"testing"
	demo "goStudy/testingDemo"
)
func TestSum(t *testing.T)  {
	sum := demo.Sum(1, 2)
	if sum != 3 {
		t.Fatalf("Sum 执行错误,期望值 = %v , 实际值 = %v \n", 3, sum)
	}

	t.Logf("执行正确")

	/**
	结果如下:
	=== RUN   TestSum
	--- PASS: TestSum (0.00s)
		unit_funtion_test.go:14: 执行正确
	PASS
	 */
}

你可能感兴趣的:(Go)