Nie jestem pewien co do konkretnych frameworków, ale ogólnym podejściem w zakresie OOP byłoby napisanie kilku abstrakcyjnych warstw na wierzchu dowolnego kodu dostępu do pliku (bród interfejsów!) i być może fasadę ułatwiającą korzystanie z typowych operacji. następnie po prostu mockujesz jedną warstwę poniżej kodu, który aktualnie testujesz, i jest to zasadniczo fałszywy system plików (a przynajmniej kod, który testujesz, nie będzie wiedział inaczej).
Jeśli przyjrzysz się użyciu struktury iniekcji zależności, aby poradzić sobie z tym za Ciebie, ułatwi to możliwość przełączania komponentów na fałszywą implementację interfejsu. Jeśli zastosujesz się do wzorców odwrócenia kontroli, przekazanie wszelkich zależności do konstruktora klasy, którą testujesz, również ułatwi testowanie.
public interface IFileSystem {
IFileHandle Load(string path);
}
public class ClassBeingTested {
public ClassBeingTested(IFileSystem fileSystem) {
}
public void DoSomethingWithFileSystem() {
}
}
Mam nadzieję, że moja java jest poprawna, nie pisałem javy przez długi czas, ale mam nadzieję, że zrozumiesz dryf. mam nadzieję, że nie lekceważę tego problemu i jestem zbyt uproszczony!
oczywiście to wszystko przy założeniu, że masz na myśli prawdziwe testowanie jednostkowe, to znaczy testowanie najmniejszych możliwych jednostek kodu, a nie całego systemu. do testowania integracji potrzebne jest inne podejście.