『レガシーコード改善ガイド』によると,単体テストに関する特徴として
・実行に0.1秒もかかる単体テストは,遅い単体テストである
・次に当てはまるものは単体テストではない
1.データベースとやり取りする
2.ネットワークを介した通信をする
3.ファイルシステムにアクセスする
4.実行するために特別な環境設定を必要とする(環境設定ファイルの編集など)
大枠で同意する。しかし,テストの中で一時ファイルを生成するタイプのファイルシステムアクセスはユニットテストに含んでいても許されるのではと思う。
一時ファイルの生成処理をモック化することは可能だし、実際にファイル作成するとなるとファイルの作成成功/失敗がテストしづらくなるから、やっぱりユニットテストでは実際にファイルを作成するべきではないかな。