内容简介:保障代码能够正确运行很重要的一步就是进行测试,单元测试能够有效的保证函数的正确运行,这对函数内代码的修改非常重要要,可以保证在改出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() |
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Windows黑客编程技术详解
甘迪文 / 人民邮电出版社 / 2018-12 / 108
《Windows黑客编程技术详解》介绍的是黑客编程的基础技术,涉及用户层下的Windows编程和内核层下的Rootkit编程。本书分为用户篇和内核篇两部分,用户篇包括11章,配套49个示例程序源码;内核篇包括7章,配套28个示例程序源码。本书介绍的每个技术都有详细的实现原理,以及对应的示例代码(配套代码均支持32位和64位Windows 7、Windows 8.1及Windows 10系统),旨在......一起来看看 《Windows黑客编程技术详解》 这本书的介绍吧!