インポートされたパッケージで再利用可能なコードをテストする
複数のパッケージやテスト ファイルを操作する場合、通常、パッケージからユーティリティ関数を再利用する必要が生じます。あるテストから別のテストへ。次のディレクトリ階層を考えてみましょう:
/<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 つのアプローチは次のとおりです。
より効果的な解決策は、内部メソッドの出力を保存することです。インポートされたパッケージ内の関数をサポート ファイルに追加します。このファイルは、ユーティリティ パッケージ内の対応する関数が呼び出されたときにロードできます。
たとえば、pkg1 にエクスポートされていない関数 Retrieve() がある場合、サポート ファイルをロードするユーティリティ パッケージ内に関数を作成できます。そして Retrieve() を呼び出します。このアプローチを使用すると、ユーティリティ パッケージの関数は、モジュール性やビルド アーティファクトを損なうことなく、インポートされたパッケージの内部メソッドにアクセスできます。
以上がインポートされたパッケージ内のテストコードを効果的に再利用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。