内容简介:保障代码能够正确运行很重要的一步就是进行测试,单元测试能够有效的保证函数的正确运行,这对函数内代码的修改非常重要要,可以保证在改出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() |
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Spring框架高级编程
约翰逊 / 蒋培 / 机械工业出版社 / 2006-4 / 59.00元
Spring框架是主要的开源应用程序开发框架,它使得Java/J2EE开发更容易、效率更高。本书不仅向读者展示了Spring能做什么?而且揭示了Spring完成这些功能的原理,解释其功能和动机,以帮助读者使用该框架的所有部分来开发成功的应用程序。本书涵盖Spring的所有特性,并且演示了如何将其构成一个连贯的整体,帮助读者理解Spring方法的基本原理、何时使用Sping以及如何效仿最佳实践。所有......一起来看看 《Spring框架高级编程》 这本书的介绍吧!
JS 压缩/解压工具
在线压缩/解压 JS 代码
HSV CMYK 转换工具
HSV CMYK互换工具