ファイル システムと対話する単体テスト コードでは、テストを実際のファイルから分離するためにファイル システムをモックする必要があります。システムの操作。この記事では、インターフェイスとモック型を使用して、Go でファイル システムと対話する関数を効果的にテストする例を示します。
提供されるソリューションは、インターフェイス fileSystem を利用して、ファイル システムの操作を表現します。 。具体的な実装である osFS は、運用環境での実際のファイル操作を処理します。 osFS に依存するコードをテストするには、fileSystem を継承しながらテスト中のファイル操作の動作を制御するモック バージョン、mockedFS を作成する必要があります。
To mock fs.Stat() によって返される os.FileInfo インターフェイスを使用して、os.FileInfo を埋め込み、必要なメソッド。これにより、Stat() によって報告されるサイズを制御できるようになります。
モックされたファイルシステムを使用してコードをテストするには、グローバル fs 変数を mokedFS のインスタンスに一時的に置き換えます。 。これにより、テストされた関数によって実行されるファイル システム操作が効果的にインターセプトされます。
提供されたサンプル関数 getSize() は、ファイルのサイズを返すか、Stat() が失敗した場合はエラーを返します。この関数を完全にテストするには、mockedFS を使用して Stat() の動作を制御します:
テスト ケースでは、関数がエラー シナリオと成功シナリオの両方を正しく処理することを検証します。
インターフェイスを使用するおよびモックされた型を使用すると、Go での単体テスト中にファイルシステムを簡単にモックできます。これにより、テストされたコードを外部の依存関係から分離し、信頼性の高いテスト結果を保証できます。
以上がGo で単体テストのためにファイルシステムを効果的にモックするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。