iT邦幫忙

2023 iThome 鐵人賽

DAY 5
1
自我挑戰組

和地鼠做30天好朋友系列 第 5

地鼠,來測試吧

  • 分享至 

  • xImage
  •  

有很多時候,東西出來了我們都會需要測試。
於是這個社會說:要有了品管,就有了品管...

我自己也是當開發工程師的人,我知道我們真的很少很少很少很少寫測試...
於是業配一本書:你就是不寫測試才會沒時間

(誤~

對於 PHP 來說我們有PHPUnit, Python 也有 Pytest之類的框架...

Golang 呢?
不,它內建...誰跟你在那邊composer installpip 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 這一塊,我們日後會用另外一個影片講解 🤪
好啦,一定出一定出...


上一篇
地鼠,幫我寫情書給 Alice 吧
下一篇
結合其他強大的地鼠,我要成為地鼠之王
系列文
和地鼠做30天好朋友12
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言