プロセス外部への副作用がないコードならテストは難しくありませんが、ファイルの読み書き、ネットワーク、データベースを使いだすと気にしなければならないことが増えます。今回はファイルの読み書きを扱うテストを書こうとしていろいろ調べたりしたことをまとめます。 単体のファイルの読み書きであれば、io.Readerやio.Writerを引数にすれば解決することも多いですが、複数のファイルがフォルダに格納されており、それを一括で読み書きするようなケースを想定しています。 fs.FSGo 1.16で追加されたのがfs.FSインタフェースです。ファイルシステムを抽象化するインタフェースです。go embedでプログラムに埋め込んだファイル群をアクセスしたり、os.DirFS()で実フォルダのfs.FSインタフェースを取り出したりできます。テスト時はすでに実行ファイルに組み込まれたデータをファイルとして読み込
