Jest jakaś bibliotek, która ułatwia testowanie tworzeni plików. Muszę przetestować metodę, która wyszukuję pliki po dacie utworzenia. Wiem,że jest taka klas jak 'temporaryFolder: ale w niej daty utworzenie będą identyczne.
Hmm, w Javie takie coś w zasadzie jest gotowe:
Files.walkFileTree(Path p, FileVisitor f)
Wystarczy zaimplementować interfejs FileVistor i w obiekcie trzymać datę utworzenia plików, którą to datę chcemy uwzględniać przy wyszukiwaniu plików.
walkFileTree przejdzie rekursywnie wybrany katalog, na każdym pliku wywoła Twojego visitora (który zna datę utworzenia pliku), a ten visitor może odkładać "pasujące" pliki "na boku".
To co musiałbyś przetestować, to zaimplemetnowanego visitora, który od walkFileTree dostaje:
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs)
Twój test polegać by mógł na sprawdzeniu czy dla kolekcji spreparowanych [ Path, BasicFileAttributes] i daty referencyjnej dostajesz spodziewaną kolekcję.
Dzięki temu, nie trzeba tworzyć żadnych plików i majstrować przy ich atrybutach.. No i implementować czegoś co jest gotowe ;-)
Jak się pisze testy to się nie testuje cudzego kodu, a już na pewno nie testujesz JRE.
Testy też nie powinny czegokolwiek zmieniać na dysku.
Z tego co słyszałem, można mockować system plików.
https://stackoverflow.com/q/30394737
Ale jeszcze lepiej odciąć się od zewnętrznego API za pomocą interfejsu i napisać standardowe mock dla tego interfejsu.
Ciekawe ale ja chce sam generować datę utworzenia pliku taki stub mi trzeba.
Jakiego API używasz?
MarekR22 napisał(a):
Jakiego API używasz?
na zwykły File jeśli ci o to chodzi. Ciekawe informację ale jak utworzę plik czy folder to one będą mieć takie same daty utworzenia, a mi chodzi czy jest jakiś MockFile gdzie ja to mogę ustawić.