ホームページ >バックエンド開発 >Golang >Go でインポートされたパッケージのテスト コードを再利用するにはどうすればよいですか?

Go でインポートされたパッケージのテスト コードを再利用するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-04 07:12:30514ブラウズ

How Can We Reuse Test Code from Imported Packages in Go?

インポートされたパッケージでのテスト コードの再利用

複雑なコードベースを管理する場合、テスト コードを再利用できる機能は、効率的で保守可能なテスト実践のために重要になります。 。この記事では、開発者が直面する一般的な課題、つまりインポートされたパッケージからのテスト コードの再利用について説明します。

次のシナリオを考えてみましょう。プロジェクトのディレクトリ構造は次のとおりです。

/
|-- main.go
|-- main_test.go
|-- pkg1
    |-- pkg1_test.go

main.go imports pkg1 に依存しており、pkg1 内のエクスポートされていない関数に依存するコードが含まれています。 pkg1_test.go には、pkg1 の内部関数を呼び出すユーティリティ関数 verifyTaskNumber が含まれています。ただし、main_test.go は独自のテストで verifyTaskNumber を使用する必要があります。

この問題に対処するには、2 つの解決策が提案されています。

  1. verifyTaskNumber を pkg1.go に移動します。これにより、main_test.go が関数に直接アクセスできるようになります。ただし、verifyTaskNumber は go build によって生成されたバイナリに含まれており、テストでアクセスできなくなる可能性があります。
  2. verifyTaskNumber を含む別の testutility パッケージを作成し、main_test.go と pkg1_test.go の両方にインポートします。これにより関数へのアクセスが可能になりますが、testutility への依存関係が作成され、testutility 自体は pkg1 に依存します。

どちらのソリューションも、テスト コードを再利用するためのシームレスで効率的なアプローチを提供しません。別の解決策は、main_test.go と pkg1_test.go の両方にインポートされる utils パッケージに verifyTaskNumber を移動することです。 pkg1 のエクスポートされていない関数への依存を考慮するために、内部関数の結果をサポート ファイルに保存し、utils パッケージによってロードできます。これにより、複数のテスト パッケージのテスト ユーティリティへのアクセスを提供しながら、エクスポートされていない関数への依存を回避できます。

以上がGo でインポートされたパッケージのテスト コードを再利用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。