複数のファイルを含む Go パッケージでのテスト コードの重複を回避するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-10-31 10:00:03
オリジナル
622 人が閲覧しました

How Can I Avoid Test Code Duplication in Go Packages with Multiple Files?

複数のファイルを含む Go パッケージでの共有テスト コードの処理

複数のファイルを含む Go パッケージでは、それぞれに個別のテスト ファイルを作成するのが一般的ですソースファイル。ただし、テストで共有ヘルパー関数が必要な場合、コードの重複が発生する可能性があります。

解決策: テスト パッケージの共有識別子の利用

コードの複製を回避するために、Go ではテストを許可します。同じ package 句内のファイルを使用して、明示的な import ステートメントを使用せずに、エクスポートされた識別子とエクスポートされていない識別子を相互に参照します。これは、共有テスト コードを任意のテスト ファイルに配置でき、同じパッケージ内の他のすべてのテスト ファイルからアクセスできることを意味します。

構造例

次のファイルを含むパッケージを検討します。

mypackage/
    mypackage.go
    mypackage_test.go
    helper_test.go
ログイン後にコピー

製品コードを汚染することなく、helper_test.go で共有テスト ヘルパー関数を定義できます。

説明

helper_test.go は mypackage_test.go に直接インポートされませんが、一致するパッケージ句 (パッケージ mypackage_test) により、同じテスト パッケージに属します。これにより、mypackage_test.go が helper_test.go で宣言された識別子にアクセスできるようになり、コード共有とテストの保守性が可能になります。

追加メモ

  • 必須ではありませんすべてのソース ファイルに対してテスト ファイルを作成します。
  • ソース ファイルが一致しないテスト ファイルもサポートされます。
  • テスト ファイルは、パッケージ句が異なる場合、異なるテスト パッケージに属します。

以上が複数のファイルを含む Go パッケージでのテスト コードの重複を回避するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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