日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Go语言中如何进行测试

發布時間:2025/4/5 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Go语言中如何进行测试 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

為什么80%的碼農都做不了架構師?>>> ??

主要講解在Go語言中如何進行代碼測試

?

1、調試和測試

????????????在程序開發中應該更多的注重測試而不是調試,即測試的優先級重于調試

2、傳統測試與表格驅動測試

????????傳統測試在大多數情況下使用代碼進行的單元測試,示例代碼如下:

????????????????

????????? ? 傳統測試的缺點:

  • 測試數據與測試邏輯耦合在一起
  • 出錯信息不準確
  • 一旦一個數據出錯測試全部結束

????????表格驅動測試 就是在傳統測試的基礎上?對測試數據與測試邏輯相分離,數據像表格一樣單獨存儲,示例如下:

????????????

????? ? 在Go語言中一般采用表格驅動測試,其優點主要有:

  • 分離測試數據與測試邏輯
  • 擁有明確的錯誤信息
  • 可以部分失敗
  • Go語言的語法使我們更容易實現表格驅動測試

3、在Go語言中實現表格驅動測試

????? ? 注意事項:測試Go文件命名為:xxx_test.go,在測試Go文件中,測試方法使用大寫Test開頭,測試方法傳入參數為:*testing.T

????? ? 現在示例對勾股數方法進行表格驅動的單元測試 以及性能測試 ,代碼如下:

package mainimport ( "testing""math" ) //傳入兩個 int 類型數據 a、b,返回 返回 a2+b2 func Triangle(a, b int) int {var c intc = int(math.Sqrt(float64(a*a + b*b)))return c }//定義測試方法對上面的 方法進行測試 func TestTriangle(t *testing.T) {tests := []struct{ a, b, c int }{{3, 4, 5},{5, 12, 13},{8, 15, 17},{12, 35, 36},{30000, 40000, 5000},}for _, tt := range tests {if actual := Triangle(tt.a, tt.b); actual != tt.c {t.Errorf("Triangle(%d, %d); 實際結果: %d; 期望結果: %d",tt.a, tt.b, actual, tt.c)}}//輸出結果://=== RUN TestTriangle//--- FAIL: TestTriangle (0.00s)// 21_Test1_test.go:25: Triangle(12, 35); 實際結果: 37; 期望結果: 36// 21_Test1_test.go:25: Triangle(30000, 40000); 實際結果: 50000; 期望結果: 5000//FAIL }//對方法進行性能測試 func BenchmarkTriangle(b *testing.B) {for i:=0;i<b.N;i++ {if actual := Triangle(3,4); actual != 5 {b.Errorf("Triangle(%d, %d); 實際結果: %d; 期望結果: %d",3, 4, actual, 5)}}//輸出結果(在短時間內執行了 2000000000 次 測試,每次耗時 0.42 ns)://goos: windows//goarch: amd64//2000000000 0.42 ns/op//PASS}

?

????????Goland 編譯器會 自動識別到?TestTriangle、BenchmarkTriangle 方法為測試方法,可以使其直接執行,針對性能測試,我們可以使用Go提供的 Go tool 工具查看是什么操作占用了過多性能。

轉載于:https://my.oschina.net/ruoli/blog/1816384

總結

以上是生活随笔為你收集整理的Go语言中如何进行测试的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。