内容简介:保障代码能够正确运行很重要的一步就是进行测试,单元测试能够有效的保证函数的正确运行,这对函数内代码的修改非常重要要,可以保证在改出bug第一时间就能暴露出来。go语言使用自带的单元测试的函数一般都放到一个在
保障代码能够正确运行很重要的一步就是进行测试,单元测试能够有效的保证函数的正确运行,这对函数内代码的修改非常重要要,可以保证在改出bug第一时间就能暴露出来。go语言使用自带的 testing
和 go test
可以方便的进行单元测试,本文以编写 lru4go 的单元测试为例记录下 go 自带的单元测试的基本使用方法。
基础
单元测试的函数一般都放到一个 *_test.go
的文件中,这个文件和被测试的函数处于同一个包中,在编译的时候这个文件不会编译进入二进制文件中,在要测试的包目录下执行 go test -v
就可以执行目录下所有 *_test.go
文件中的测试用例:
go test测试执行结果
测试用例编写
在 *_test.go
文件中我们可以编写一条一条的测试用例。测试文件所属的包和被测试的函数同属一个包,并且要导入 testing
包:
package lru4go import ( "testing" )
测试用例都是以 Test
开头,并且传入一个 * testing.T
的参数:
func TestLrucache_Set(t *testing.T) { cache, _ := New(50) if cache == nil { t.Fatal("create cache failed!") } cache.Set("test1", 123) v, err := cache.Get("test1") if err != nil { t.Fatal("get failed,err:", err) } if v == nil { t.Fatal("get failed, value is nil") } }
t
的常用方法:
方法名 | 描述 |
---|---|
Log(args ...interface{}) |
打印日志,类似于 Println |
Logf(format string, args ...interface{}) |
打印日志,类似于 Printf |
SkipNow() |
跳过当前测试用例 |
Skip(args ...interface{}) |
相当于 SkipNow() + Log() |
Fail() |
标记失败,但继续执行当前用例 |
FailNow() |
标记失败而且停止执行当前用例 |
Fatal(args ...interface{}) |
相当于 FailNow() + Log() |
Error(args ...interface{}) |
相当于 Fail() + Log() |
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。