Go单元测试
以前没学go单元测试时,写好的代码总是要在main函数中跑一下,非常不便。go提供了非常方便的单元测试工具,只要编写单元测试文件即可。
1、单元测试文件必须以test.go结尾
2、单元测试文件里的方法必须以Test开头的驼峰形式命名方法,注意这里Test后面必须跟大写字母开头
相对代码目录,新建一个test目录,专门放测试文件
src
--bitcoin //项目目录
----Block.go
--test //测试文件目录
----Block_test.go
Block.go
func CreateBlock(data []*Transaction, preHash []byte) *Block{
newBlock := &Block{
PreHash:preHash,
Transactions:data,
Timestamp:time.Now().Unix(),
}
return newBlock
}
对单一文件进行测试,可以新建对应的测试文件Block_test.go
测试方法Test开头,参数是*testing.T
func TestCreateBlock(t *testing.T) {
ts := []*bitcoin.Transaction{txone,txtwo}
bc := bitcoin.CreateBlock(ts) //调用需要测试的方法
t.Log(bc) //输出结果
}
命令行运行
cd test //进入到测试文件目录
go test Block_test.go
如果要显示测试方法里面的输出
一般情况,运行测试文件不会显示fmt.println等输出内容,需要在命令加上-v
go test -v Block_test.go
运行指定测试文件的指定测试方法
如果只想执行bitcoin_test.go中的TestCreateBlock方法,加上-run
go test -v bitcoin_test.go -run TestCreateBlock
本作品采用《CC 协议》,转载必须注明作者和本文链接