ホームページ > バックエンド開発 > Golang > Go でメインパッケージの関数をテストするにはどうすればよいですか?

Go でメインパッケージの関数をテストするにはどうすればよいですか?

Susan Sarandon
リリース: 2024-11-28 16:20:12
オリジナル
854 人が閲覧しました

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 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート