iT邦幫忙

2023 iThome 鐵人賽

DAY 11
0
SideProject30

HOW TO GO系列 第 11

11. 測試 (Test)

  • 分享至 

  • xImage
  •  

Go 有提供測試功能,寫測試本身所使用語言也是 Go,不需要新的語法、規則及工具,只需要依照一定的慣例來撰寫。

寫測試的目的就是要確保程式碼的品質,減少發生錯誤的機率,也可以知道執行的行為是否為(或是說,符合需求嗎?

其中有幾點寫測試需要定義清楚的是:

  1. 邊界條件
  2. 資料結構
  3. 輸入輸出間關係

因為有時候碰到覺得不好寫測試的情況,並不一定是因為不會寫,而是被測試的方法難以測試,這時候想的應該是如何重構被測試的方法。

但可能會想說重構的第一步就是要寫測試,這是正確的,但是我想表達的是測試與重構是應該互相搭配,反覆幾次這樣的流程之後,測試用程式質量也會提升。

測試 (Test)

先針對需要測試的檔案,在同一個資料夾下建立與需要測試的檔案同名後面加上 _test 的檔案

folder
|_ custom
   |_ math.go
   |_ math_test.go

撰寫測試,測試測試

// main.go
/*
func Add(a, b int) int {
    return a + b
}
*/

package math

import "testing"

func TestAdd(t *testing.T) {
    result := Add(2, 3)
    if result != 5 {
        t.Errorf("Add(2, 3) returned %d, expected 5", result)
    }
}

執行測試

go test math_test.go

補充 01. testify

GitHub Repo: stretchr/testify

Go code (golang) set of packages that provide many tools for testifying that your code will behave as you intend.


上一篇
10. 約定 (Convention)
下一篇
12. 學習資源&方向
系列文
HOW TO GO30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言