内容简介:保障代码能够正确运行很重要的一步就是进行测试,单元测试能够有效的保证函数的正确运行,这对函数内代码的修改非常重要要,可以保证在改出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() |
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Visual Thinking
Colin Ware / Morgan Kaufmann / 2008-4-18 / USD 49.95
Increasingly, designers need to present information in ways that aid their audiences thinking process. Fortunately, results from the relatively new science of human visual perception provide valuable ......一起来看看 《Visual Thinking》 这本书的介绍吧!