メイン パッケージ関数のテスト
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 サイトの他の関連記事を参照してください。