首頁 > 後端開發 > Golang > 如何在Go中測試主包中的函數?

如何在Go中測試主包中的函數?

Susan Sarandon
發布: 2024-11-28 16:20:12
原創
875 人瀏覽過

How to Test Functions in the Main Package in Go?

測試主包函數

在 Go 測試領域,嘗試存取主包中定義的函數時可能會遇到挑戰測試文件。這是由於 Go 中包固有的隔離性所造成的。

考慮以下常見問題:

// main.go
package main

func foo() string {
    return "Foo"
}
登入後複製
// main_test.go
package main

import "testing"

func TestFoo(t *testing.T) {
    t.Error(foo()) // Undefined: foo
}
登入後複製

嘗試從main_test.go 中的主套件測試foo()將導致錯誤,因為子包中無法存取foo() 函數。

要解決此問題,一種方法是為您要測試的功能建立一個單獨的套件。例如:

// util.go
package util

func Foo() string {
    return "Foo"
}
登入後複製
// main.go
package main

import (
    "fmt"
    "log"
    "util"
)

func main() {
    fmt.Println(util.Foo())
}
登入後複製
// util_test.go
package util_test

import (
    "testing"
    "util"
)

func TestFoo(t *testing.T) {
    t.Error(util.Foo()) // Now accessible
}
登入後複製

以這種方式建立程式碼,您可以將測試功能與主套件隔離。

但是,如果您特別需要直接在主套件中定義的測試函數,您必須記住同時對所有檔案執行測試。 go test 指令可讓您指定多個檔案:

go test *.go
登入後複製

此外,請確保您的測試函數在 _test.go 檔案中正確命名,遵守 TestXXX 命名約定並傳遞指向測試的指標。 T 作為參數。

以上是如何在Go中測試主包中的函數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板