开发者学堂课程【Go 语言核心编程 - 面向对象、文件、单元测试、反射、TCP 编程:单元测试细节说明】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/626/detail/9743
单元测试细节说明
内容介绍
一,测试用例文件名必须以 test.go 结尾
二,测试用例函数必须以 Test 开头
三,TestAddUpper(t *tesing.T) 的形参类型必须是 *testing.T
四,一个测试用例文件中,可以有多个测试用例函数
五,运行测试用例指令
六,测试单个方法
一,测试用例文件名必须以 test.go 结尾
比如 cal test.go,cal 不是固定的。
testing提供对 Go 包的自动化测试的支持。通过'go test命令,能够自动执行如下形式的任何函数:func TestXxx(*testing.T)
其中Xxx可以是任何字母数字字符串(但第一一个字母不能是[a-z]) ,用于识别测试例程。
在这些函数中,使用 Error, Fai l或相关方法来发出失败信号。
要编写一个新的测试套件,需要创建-一个名称以_ test.go 结尾的文件,该文件包含'TestXxx函数,如上所述。将该文件放在与被测试的包相同的包中。该文件将被排除在正常的程序包之外,但在运行“go test"命令时将被包含有关详细信息,请运行"go help test"和"go help testtlag"了解。
如果有需要,可以调用*T和*B的 Skip方法,跳过该测试或基准测试
二,测试用例函数必须以Test开头
一般来说就是 Test+被测试的函数名,比如testddpperor
说明:必须不能用小写。func TestGetsub(t *testing.T) {
三,TestAddUpper(t *tesing.T)的形参类型必须是*testing.T
说明:要会用这些T,点进去就会有说明。func (c "T) Error(args .terfactet)
func(c "T) rrorf(omat string, args ..rceo func (c "T) Fail()
func(c "T) FailNow()
func (c *T) Failed() bool
func(c "T) Fatal(args .terftceo)
func (c "T) Fatalf(format string, args inertace)o func (c *T) Log(args .interface)
func (c *"T) Logf(format string, args .intertce)o func (c *T) Name() string
func (t *T) Parallel()
func (t *T) Run(name string, f func(t *T) boolo func (c "T) Skip(args .iterface()
func (c *T) SkipNow()
func (c *T) Skipf(format string, args ..interface0)o func (c *T) Skipped() bool
四,一个测试用例文件中,可以有多个测试用例函数
比如 TestAddUpper、 TestSub
五,运行测试用例指令
cmd>go test [如果运行正确,无日志,错误时,会输出日志]
cmd>go test -V [运 行正确或是错误,都输出日志]
当出现错误时,可以使用 t.Fatalf 来格式化输出错误信息,并退出程序
t.Logf 方法可以输出相应的日志
测试用例函数,并没有放在 main 函数中,也执行了,这就是测试用例的方便之处.
PASS 表示测试用 例运行成功,FAIL 表示测试用例运行失败
六,测试单个方法
测试单个文件,-定要带上被测试的原文件
go test-V cal test.go cal.go
测试单个方法go test -V -test.run TestAddUpper