内容简介:基础知识:GO为我们提供了测试框架,go test,让我们能够很容易的进行单元测试。但必须遵守以下几点规则:
元测试
总结一些单元测试的相关类容以供以后进行学习与参考
基础知识:
GO为我们提供了测试框架,go test,让我们能够很容易的进行单元测试。
但必须遵守以下几点规则:
* 测试文件必须以_test.go结尾 * 单元测试文件名_test.go前面的部分最好是被测方法所在 go 文件的文件名。(不一样也可以运行go test,但是应该遵守统一的规范) * 单元测试的函数必须以Test开头,是公开函数 * 测试函数必须接收一个指向testing.T类型的指针(依测试目的而定,如主要是测试性能,则用testing.B等),并且不能返回任何值。 * 函数名最好是Test+测试函数名(依测试类型而定,Benchmark等)。 `其中Bench开始的是压力测试`
若是遵循上述的几点规则,可以很容易些出一个测试环节
写一个简单的单元测试用例
add.go
package add
func Add(a, b int) int{
return a+b
}
add_test.go
package add
import "testing"
func TestAdd(t *testing.T){
if sum:=Add(1,2); sum!=3{
t.Error("fail")//日志一般要写成f(x)=y, want z的形式
} else {
t.Log("success")
}
}
go test -v即可看到测试结果
(这里有一点我踩过的小坑,当想指定测试文件的时候go test file_test.go会报错,因为需要后面还需要接上被测试的文件:go test file_test.go file.go)
只是一个最简单的基本测试。另一种测试方法叫做:表组测试。其实就是多个基本测试。
将上面test简单改造
package add
import "testing"
func TestAdd(t *testing.T){
var tests = []struct{
date []int
want int
}{
{[]int{1, 2}, 3},
{[]int{2, 5}, 7},
{[]int{3, 9}, 11},
}
for _,v := range tests{
if sum:=Add(v.date[0], v.date[1]); sum!=v.want{
t.Errorf("Add(%d, %d) = %d, want %d", v.date[0], v.date[1], v.date[0]+v.date[1], v.want)
} else {
t.Log("success")
}
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
白话大数据与机器学习
高扬、卫峥、尹会生 / 机械工业出版社 / 2016-6 / 69
本书通俗易懂,有高中数学基础即可看懂,同时结合大量案例与漫画,将高度抽象的数学、算法与应用,与现实生活中的案例和事件一一做了关联,将源自生活的抽象还原出来,帮助读者理解后,又带领大家将这些抽象的规律与算法应用于实践,贴合读者需求。同时,本书不是割裂讲解大数据与机器学习的算法和应用,还讲解了其生态环境与关联内容,让读者更全面地知晓渊源与未来,是系统学习大数据与机器学习的不二之选: ·大数据产业......一起来看看 《白话大数据与机器学习》 这本书的介绍吧!