有很多時候,東西出來了我們都會需要測試。
於是這個社會說:要有了品管,就有了品管...
我自己也是當開發工程師的人,我知道我們真的很少很少很少很少寫測試...
於是業配一本書:你就是不寫測試才會沒時間
(誤~
對於 PHP 來說我們有PHPUnit
, Python 也有 Pytest
之類的框架...
Golang 呢?
不,它內建...誰跟你在那邊composer install
和 pip install
的... 遜 👎 我們的地鼠說...
在這篇文章中,我們非常簡單的帶過如何使用 go test,反正參加自我挑戰只是為了要水水一下字數、水水一下履歷而已。 我就廢 😎
那,我們開始囉... 💪
一開始,我們應該準備一個被測試的對象...(不然你要測試三...小..
我取名做demo.go
package main
func Add(a, b int) int{
return a+b
}
在相同目錄下,並以 _test.go 結尾。例如,如果你有一個名為 math.go 的文件,則測試文件的名稱應為 math_test.go。我們這裡是 demo.go, 所以就是 demo_test.go
package main
import (
"testing"
)
func TestAdd(t *testing.T) {
result := Add(12, 3)
expected := 15
if result != expected {
t.Errorf("Expected %d, but got %d", expected, result)
}
}
之後讓我們執行魔法吧! 打開你的黑視窗,輸入go test
後
PASS
ok github.com/r567tw/golang-ithome-30-days/Day5 0.343s
另外如果你使用 go test --cover
這個咒語的話就是
PASS
coverage: 100.0% of statements
ok github.com/r567tw/golang-ithome-30-days/Day5 0.314s
啊如果你一開始碰到 go mod 相關的問題... 像是
go: cannot find main module, but found xxxx
to create a module there, run:
cd .. && go mod init
其實你就在人家的指示去做囉,你 go mod init 後面你可以放你想要取的名字...或者你也可以在當前目錄下使用go mod init demo
之類的...
關於 go mod
這一塊,我們日後會用另外一個影片講解 🤪
好啦,一定出一定出...