Go單元測試

littlexiaoshuishui 發表於 2021-04-08
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 協議》,轉載必須註明作者和本文連結
用過哪些工具?為啥用這個工具(速度快,支援高併發...)?底層如何實現的?