Я розумію ваше запитання як "хороший / прийнятий спосіб тестування класу, який залежить від операцій з файловою системою". Я не припускаю, що ви хочете протестувати файлову систему вашого OS.
Для того, щоб докласти зусиль, щоб 'інтерфейси до вашої операції з файловою системою і' знущатися над ними '', як відповідь @Doc Браун пропонується якомога меншою, корисно використовувати двійкові потоки Java чи зчитування тексту (або еквівалент в c # або мову програмування, яку ви використовуєте), а не використовувати файли з іменами безпосередньо у вашому класі, розробленому tdd.
Приклад:
Використовуючи Java, я реалізував клас CsvReader
public class CsvReader {
private Reader reader;
public CsvReader(Reader reader) {
this.reader = reader;
}
}
Для тестування я використовував такі дані пам'яті
String contentOfCsv = "TestColumn1;TestColumn2\n"+
"value1;value2\n";
CsvReader sut = new CsvReader(java.io.StringReader(contentOfCsv));
або поглинати тестові дані в ресурси
CsvReader sut = new CsvReader(getClass().getResourceAsStream("/data.csv"));
У виробництві я використовую файлову систему
CsvReader sut = new CsvReader(new BufferedReader( new FileReader( "/import/Prices.csv" ) ));
Таким чином мій CsvReader не залежить від файлової системи, а від абстракції "Reader", де є реалізація для файлової системи.