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 协议》,转载必须注明作者和本文链接
用过哪些工具?为啥用这个工具(速度快,支持高并发...)?底层如何实现的?
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!