GO語言基礎 優雅的進行程式測試

2021-09-26 08:49:57 字數 1732 閱讀 9704

我們可以為go程式編寫三類測試,即:功能測試(test)、基準測試(benchmark),也稱效能測試(example)

測試檔案的約定

測試檔案的主名稱應該以被測試檔案主名稱為先導,並且以_test為字尾。例:demo.go 的測試檔名稱應為demo_test.go。

一般情況下乙個測試檔案只給乙個原始碼檔案做測試,demo_test.go只測試demo.go檔案。

測試檔案與被測試檔案應該放在同乙個**包內

函式的名稱和簽名的規定

對於功能測試函式來說,其名稱必須以test為字首,並且引數列表中只應有乙個*testing.t型別的引數宣告。

對於效能測試函式來說,其名稱必須以benchmark為字首,並且唯一引數的型別必須是*testing.b型別的。

對於示例測試函式來說,其名稱必須以example為字首,對函式的引數列表沒有強制規定。

package demo

import

("fmt"

"testing"

)//功能測試

func

testmethod

(t *testing.t)

//基準測試

func

benchmarkmethod

(b *testing.b)

//效能測試

func

examplemethod

(t *testing.t)

func

method

(t *testing.t)

go test 命令

go test 命令,會自動讀取原始碼目錄下面名為 *_test.go 的檔案,生成並執行測試用的可執行檔案。

執行go test 命令會執行符合規定的測試**;

go test命令就會針對每個被測**包,依次地進行構建、執行包中符合要求的測試函式,清理臨時檔案,列印測試結果。

命令:

go test demo #go test [目錄]

這裡是否讀快取不會影響我們的測試結果,如果想清初快取可以執行: go clean -cache

效能測試

#格式:go test -bench=. -run=^$ [目錄]

go test -bench=. -run=^$ demo

-bench= 指要進行效能測試

. 需要執行任意名稱的效能測試函式(符合規則)

-run=^$ 需要執行哪些功能的測試函式

^$ 只執行名稱為空的功能測試函式(不執行任何功能函式)

輸出的內容:

function test

benchmark test

goos: windows

goarch: amd64

pkg: demo

benchmarkmethod-8 benchmark test

benchmark test

benchmark test

benchmark test

benchmark test

2000000000 0.00 ns/op

pass

ok demo 0.262s

go語言 並行程式 wordcount

go在設計的時候,就有針對並行的語法 channel 和goroutine 前者 可以很方便的進行訊息和資料傳遞,在取資料和拿資料的時候可以不用關心底層實現,用 進行賦值 這裡必須加time.sleep 不然程式很快就結束,read 和 write 甚至都來不及執行。這裡和linux 執行緒程式設計...

關於進行程式測試安排的一點想法

人們往往樂於發現別人程式設計的錯誤而害怕揭露自己所寫的 的問題。或者是客觀上,由於知識的侷限,還無法很好地發現自己所犯的編碼錯誤,如果想到了,一開始他就會寫得很好。我想在乙個專案開發中,應該讓測試從開發的程式設計師工作中分離出來,由另一部分人專門做測試,測試人員會唯恐不發現程式設計人員的 問題。在下...

Go語言基礎 上 怎樣書寫 Go 語言程式?

第乙個go語言程式。在同乙個 module 裡匯入另乙個 package 新建資料夾ch01。然後在ch01內新建資料夾demo01。最後在demo01內檔案main.go。最後在main.go裡書寫一下內容 注意所有標點都是英文半形 code 1 1 package main import tim...