Junit operację na plikach

0

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.

0

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 ;-)

1

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.

0

Ciekawe ale ja chce sam generować datę utworzenia pliku taki stub mi trzeba.

0

Jakiego API używasz?

0
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ć.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0