インポートされたパッケージ内の再利用可能なテスト コード
提供されたシナリオには、別のパッケージ (pkg1_test.go) のテスト専用関数。これにより、インポートされたパッケージ間でテスト コードを再利用するという課題が生じます。
考えられる解決策とその欠点:
-
関数を pkg1.go に移動します: これにより、関数が main_test.go で使用できるようになりますが、バイナリの一部になる可能性があり、これは望ましくありません。
-
別の testutility パッケージを使用します: これにより、test- をグループ化できます。関数のみを使用すると、pkg1 の内部メソッドへの依存関係が導入され、潜在的な問題が発生します。
推奨される解決策:
上記のいずれかのメソッドを使用する代わりに、次のアプローチを検討してください:
-
サポート パッケージを作成します: テスト専用関数を support という名前の新しいパッケージに移動します。このパッケージは、pkg1 のパブリック インターフェイスのみに依存する必要があります。
-
サポート ファイルを使用します: サポートでは、pkg1 からのプライベート関数の出力を含むサポート ファイルを定義します。
-
サポート関数でサポート ファイルをロードします: サポート パッケージで、サポート ファイルをロードして必要な操作を実行する関数を作成します。
- **main_test.go からサポート関数を呼び出します。 ** main_test.go にサポート パッケージをインポートし、pkg1` からプライベート関数を使用する関数を呼び出します。
この解決策:
- テストのみのコードを分離します。製品コードから。
- pkg1 の内部関数がプライベートのままであることを保証します。
- バイナリ配布の問題を回避します。
以上が内部関数をプライベートに保ちながら、インポートされたパッケージ内のテストコードを再利用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。