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 协议》,转载必须注明作者和本文链接
走出舒适区