在文件中建立一個
main
的函數git
一、傳統方式的寫法github
package main import "fmt" // 定義一個求和的方法 func sum(n int) int { res := 0 for i := 0; i <= n; i++ { res += i } return res } func main() { res := sum(10) if res != 55 { fmt.Println("sum求和錯誤") } else { fmt.Println("sum求和正確") } }
二、使用main
函數的缺點shell
main
函數中去調用,這樣就要去修改main
函數,若是項目正在運行中,只能中止項目main
函數中,不利於咱們管理代碼,感受好臃腫go
語言中的單元測試一、介紹markdown
Go
語言中自帶有一個輕量級的測試框架testing
和自帶的go test
命令來實現單元測試和性能測試,testing
框架和其餘語言中的測試框架相似,能夠基於這個框架寫針對相應函數的測試用例,也能夠基於該框架寫相應的壓力測試用例併發
二、使用單元測試的優勢框架
go
語言中單元測試快速入門一、在剛剛的go
代碼同級的目錄下建立一個xx_test.go
的文件ide
├── sum.go // 和上面的代碼同樣的 └── sum_test.go
二、sum_test.go
代碼函數
package main import "testing" func TestSum(t *testing.T) { res := sum(10) if res != 55 { t.Fatalf("sum(10)不正確") } else { t.Logf("sum(10)正確") } }
三、在命令行運行高併發
➜ test git:(master) ✗ go test -v # 執行的命令 === RUN TestSum --- PASS: TestSum (0.00s) sum_test.go:10: sum(10)正確 PASS ok github.com/dev/test 0.005s # 計算出這個方法執行的時間 ➜ test git:(master) ✗
四、go
語言中單元測試的總結性能
測試用例的文件必需要以fileName_test.go
結尾[fileName
根據須要測試的文件來寫的]
測試用例的函數必須以Test
開頭,通常來講就是Test+
被測試的函數名
測試用例的函數的參數是固定的t *testing.T
一個測試用例中能夠有多個測試函數
運行測試用例的指令
go test
:若是運行正確,無日誌輸出,錯誤的時候會輸出日誌go test -v
:運行正確或錯誤都會輸出日誌當出現錯誤時,可使用t.Fatalf
來格式化輸出錯誤信息,並退出程序
t.Logf
方法能夠輸出相應的日誌
PASS
表示測試用例運行成功,FAIL
表示測試用例運行失敗
若是文件夾下有不少文件,你僅僅是要測試單個文件的方法
go test -v xx_test.go xx.go
若是文件中有不少測試用例方法,僅僅是測試一個方法
go test -v -test.run 測試用例的函數