Golang ---testing包

*爱你&永不变心* 提交于 2019-11-28 09:49:31

golang自带了testing测试包,使用该包可以进行自动化的单元测试,输出结果验证,并且可以测试性能。

测试文件及目录

使用testing测试包的测试文件名称需要以_test.go结尾,并且该测试文件需要与待测试的文件置于同一目录下。比如如下目录:

 

这里需要测试的是service目录中各个文件中的函数,则在该目录中创建一个名为service_test.go的文件,即可在该文件中调用其他文件的函数进行测试。

测试函数
在_test.go中通过编写测试函数来进行测试。

首先引入testing包

import (
    "testing"
)


对于测试函数,其命名需要以“Test”开头并且其后的字符串的第一个字符必须是大写,或者是数字。如果没有按照此规则进行命名,则该函数在测试时不会被执行。

其次,测试函数的参数必须为(t *testing.T),该参数包含有Log和Error等方法,用于输出测试结果,其中Log用于测试通过的情况,Error则用于测试出错的情况。

比如如下测试函数:

func TestUserLogin_normal(t *testing.T) {
	err := User().Login("test1", "321")
	if err == nil {
		t.Log("Login test1 success")
	} else {
		t.Error(err)
	}
}

  

该函数负责测试User().Login()方法的功能,当其功能正常执行时返回nil,则调用t.Log()输出测试通过的信息,否则测试不通过,调用t.Error()输出错误信息。

执行测试

在测试文件的目录下使用命令go test即可进行测试。

当直接执行go test时,会默认执行所有"Test"开头的函数,并且执行的顺序与函数定义的顺序相同。

如果需要指定某个函数进行测试,可以在命令后加上-run参数,该参数用于匹配要执行的测试函数的函数名(通过正则表达式来匹配)

比如要单独执行TestUserRegister_normal测试函数时,用以下命令:

go test -run=TestUserRegister_normal

当要执行所有名称前缀为TestUserRegister的测试函数时,用以下命令:

go test -run=TestUserRegister 

特别说明:

  • 测试文件 my_test.go 的文件名后缀必须为 _test,文件名前半部分可随意取。
  • 测试函数 Test0001,Test0002等,函数名必须以 Test 前缀,函数名后半部分可随意取,参数必须为 (test *testing.T)。

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!