以前沒學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 協議》,轉載必須註明作者和本文連結