Sorunuzu "Dosya sistemi işlemlerine bağlı bir sınıfı test etmenin iyi / kabul gören bir yolu" olarak anlıyorum. İşletim sisteminizin dosya sistemini test etmek istediğinizi düşünmüyorum.
@Doc Brown yanıtı olabildiğince küçük olarak önerilen 'dosya sistemi işlemlerinizle arayüzler oluşturmak ve "onları alay etmek" için çaba sarf etmek için java ikili akışları veya metin okuyucu (veya c # veya eşdeğeri) kullanmak iyi bir fikirdir. tdd tarafından geliştirilen sınıfta dosya adlarına sahip Dosyaları doğrudan kullanmak yerine ) .
Misal:
Java kullanarak bir sınıf CsvReader uyguladık
public class CsvReader {
private Reader reader;
public CsvReader(Reader reader) {
this.reader = reader;
}
}
Test için böyle bellek verilerinde kullandım
String contentOfCsv = "TestColumn1;TestColumn2\n"+
"value1;value2\n";
CsvReader sut = new CsvReader(java.io.StringReader(contentOfCsv));
veya test verilerini kaynaklara dahil edin
CsvReader sut = new CsvReader(getClass().getResourceAsStream("/data.csv"));
Üretimde dosya sistemini kullanıyorum
CsvReader sut = new CsvReader(new BufferedReader( new FileReader( "/import/Prices.csv" ) ));
Bu şekilde CsvReader'ım dosya sistemine değil, dosya sistemi için bir uygulamanın olduğu bir soyutlama "Okuyucu" ne bağlıdır.