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

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

Barbara Streisand
リリース: 2024-11-04 09:09:02
オリジナル
226 人が閲覧しました

How to Reuse Test Code in Imported Packages Effectively?

インポートされたパッケージで再利用可能なコードをテストする

複数のパッケージやテスト ファイルを操作する場合、通常、パッケージからユーティリティ関数を再利用する必要が生じます。あるテストから別のテストへ。次のディレクトリ階層を考えてみましょう:

/<br>|-- main.go // パッケージ main、リクエストを受け取り、pkg1 で C/U API を呼び出して特定のタスクを完了する HTTP サーバー<br>|-- main_test.go // pkg1_test で VeryfyTaskNumber を呼び出したい<br>|-- pkg1 // pkg1 をパッケージ、Retrieve&Delete を使用した CRUD API は安全のためにアンエクスポートされています</p>
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">|-- pkg1_test.go // contains a function verifyTaskNumber(*testing.T, taskName string, expectedNo int) which calls internal Retrieve function in pkg1
ログイン後にコピー

このシナリオでは、main_test.go は pkg1_test.go から verifyTaskNumber() にアクセスする必要があるため、次のような課題が生じます: インポートされたパッケージ内のテスト コードを効果的に再利用するにはどうすればよいですか?

一般的な 2 つのアプローチは次のとおりです。

  1. インポートされたパッケージへの関数の移動: このメソッドにより、プロジェクト内のすべてのテスト ファイルで関数を使用できるようになります。ただし、コンパイルされたバイナリに関数が含まれる可能性があり、この場合は望ましくありません。
  2. ユーティリティ テスト パッケージの作成: このアプローチには、関数を別のテスト ユーティリティ パッケージに移動し、関連するテスト ファイルにインポートします。このソリューションの欠点は、ユーティリティ パッケージの関数がインポートされたパッケージの内部メソッドに依存しており、アクセスできない可能性があることです。

より効果的な解決策は、内部メソッドの出力を保存することです。インポートされたパッケージ内の関数をサポート ファイルに追加します。このファイルは、ユーティリティ パッケージ内の対応する関数が呼び出されたときにロードできます。

たとえば、pkg1 にエクスポートされていない関数 Retrieve() がある場合、サポート ファイルをロードするユーティリティ パッケージ内に関数を作成できます。そして Retrieve() を呼び出します。このアプローチを使用すると、ユーティリティ パッケージの関数は、モジュール性やビルド アーティファクトを損なうことなく、インポートされたパッケージの内部メソッドにアクセスできます。

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

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