Cześć. W jaki sposób mogę zrobić testy dla metod których wyniki będą się zmieniać? Nie wiem w sumie nawet jak to wygooglować aby znaleźć jakiś fajny artykuł/poradnik.
Chodzi o to, że mam poniższe metody które: pierwsza - znajduje mi wszystkie pliki z danym rozszerzeniem, druga liczy ile plików danego dnia było edytowanych, a trzecie w jaki dzień tygodnia ile plików powstało (+ metoda pomocniczna do wyciągania dnia):
public class FileService {
public List<File> findFilesUsingSuffix(File root, String suffix) {
List<File> list = new ArrayList<>();
if (root.isDirectory()) {
File[] files = root.listFiles();
if (files != null) {
for (File file : files) {
list.addAll(findFilesUsingSuffix(file, suffix));
}
}
} else if (root.getName().endsWith(suffix)) {
list.add(root);
}
return list;
}
public Map<String, Long> countModifiedFilesByWeekday(List<File> files) {
Map<String, Long> map = new HashMap<>();
for (File file : files) {
Date d = new Date(file.lastModified());
String day = getDay(d);
map.merge(day, 1L, Long::sum);
}
return map;
}
public Map<String, Long> countCreatedFilesByWeekday(List<File> files) throws IOException {
Map<String, Long> map = new HashMap<>();
for (File file : files) {
BasicFileAttributes attr = Files.readAttributes(file.toPath(), BasicFileAttributes.class);
Date d = new Date(attr.creationTime().toMillis());
String day = getDay(d);
map.merge(day, 1L, Long::sum);
}
return map;
}
private String getDay(Date d) {
DateFormat format2 = new SimpleDateFormat("EEEE");
return format2.format(d);
}
}
W jaki sposób mogę napisać do tego działające testy, które będą działać przy każdym odpaleniu progamu?