特定のフレームワークについてはよくわかりませんが、OOPに関する一般的なアプローチは、ファイルアクセスコード(インターフェイスが豊富!)の上に抽象化されたレイヤーを記述し、一般的な操作を簡単に使用できるようにすることです。次に、現在テストしているコードの1つ下のレイヤーをモックし、それは本質的に偽のファイルシステムです(または、少なくともテストしているコードは他の方法ではわかりません)。
依存性注入フレームワークを使用してこれを処理することを検討すると、インターフェイスの偽の実装のためにコンポーネントを切り替える機能が容易になります。制御の反転のパターンに従う場合、テストしているクラスのコンストラクターに依存関係を渡すと、テストも簡単になります。
public interface IFileSystem {
IFileHandle Load(string path);
}
public class ClassBeingTested {
public ClassBeingTested(IFileSystem fileSystem) {
}
public void DoSomethingWithFileSystem() {
}
}
私のJavaが正しいことを願っています、私は長い間Javaを書いていませんが、うまくいけばドリフトを得るでしょう。うまくいけば、私はここで問題を過小評価しておらず、過度に単純化しています!
もちろん、これはすべて、真の単体テスト、つまり、システム全体ではなく、可能な限り最小のコード単位をテストすることを意味していることを前提としています。統合テストには、別のアプローチが必要です。