Тестирование и использование класса поиска
Класс для поиска мы написали. Теперь нужно проверить, как он работает. Для этого, создадим папку с такой структурой:
folderForTests
folder1
emptyFolder
file11.txt
folder2
file22.html
file21.txt
file1.txt
file2.txt
И напишем тесты для проверки работы каждого метода. Тесты создадим с использованием библиотеки JUnit. Описывать использование этой библиотеки я не буду. Это не тема данной статьи, к тому же, подробные инструкции можно найти на официальном сайте этой библиотеки.
Сами тесты достаточно простые. Идея такая, мы используем наш класс для анализа созданной папки, и проверяем результаты.
Полностью класс тестов можно посмотреть в исходниках, а здесь я покажу только его фрагмент:
/*Задаем папку для поиска*/ String startPath = "folderForTests"; /*Создаем экземпляр класса поиска*/ FileFinder finder = new FileFinder(); /*Начинаем поиск*/ List result = finder.findAll(startPath); /*Проверяем общее количество найденных объектов*/ assertEquals(result.size(), 8); /*Проверяем общий размер всех файлов в папке*/ assertEquals(finder.getDirectorySize(), 209); /*Проверяем количество найденных папок*/ assertEquals(finder.getDirectoriesNumber(), 3); /*Проверяем количество найденных файлов*/ assertEquals(finder.getFilesNumber(), 5);
Использование нашего класса в программе ничуть не сложнее, чем использование любого другого класса. В первую очередь, импортируем класс.
import searchtools.FileFinder;
Затем создаем экземпляр класса, и вызываем нужный метод. Например,
FileFinder finder = new FileFinder();
try {
List res = finder.findAll("имя_папки");
}
catch(Exception err) {
System.out.println(err.getMessage());
}
Посмотреть свойства найденных объектов тоже не сложно (мы имеем список с объектами типа File, и можем использовать любой метод этого класса).
В качестве примера напишем консольную программу, которая выводит список найденных файлов с указанием их размера. Папка для поиска и регулярные выражения задаются в параметрах командной строки.
import java.io.File;
import java.util.List;
import searchtools.FileFinder;
/**
* Программа поиска файлов
* Параметры поиска:
* 1 - начальная директория (папка) поиска
* 2 - регулярное выражение (необязательный)
* Например:
* java -jar FileSearchProgram.jar C:junit3.8.1
* java -jar FileSearchProgram.jar C:junit3.8.1 .*.html
*
* @author Стаценко Владимир
* http://www.vova-prog.narod.ru
*/
public class Main {
/** Создает экземпляры Main */
public Main() {
}
/**
* @param args[0] начальная директория (папка) поиска
* @param args[1] регулярное выражение
*/
public static void main(String[] args) {
//проверяем, заданы ли параметры поиска
if(args != null && args.length >= 1) {
FileFinder finder = new FileFinder();
try {
List searchRes = null;
//если задано регулярное выражение...
if(args.length == 2) {
//...ищем только соответствующие объекты
searchRes = finder.findAll(args[0], args[1]);
}
//если нет...
else {
//...ищем все подряд
searchRes = finder.findAll(args[0]);
}
//выводим результаты
for(int i = 0; i < searchRes.size(); i++) {
File curObject = (File)searchRes.get(i);
if(curObject.isDirectory()) {
System.out.println(
curObject.getName() + " (папка)");
}
else {
System.out.println(curObject.getName()
+ " (" + curObject.length() + " байт)");
}
}
System.out.println("Найдено " + finder.getFilesNumber() +
" файлов и " + finder.getDirectoriesNumber() +
" папок.");
}
catch(Exception err) {
System.out.println(err.getMessage());
}
}
else {
System.out.println("Не заданы параметры поиска.n" +
"начальная_папка <регулярное_выражение>n");
}
}
}
Скачать:
исходники класса поиска с тестами (FileFinding_src.zip — 12 кБ)
исходники программы поиска (FileSearchProgram_src.zip — 9 кБ)
консольную программу поиска (fileSearchProgram.zip — 4 кБ)
Постовой
Широкий выбор авто в Одессе. Лучшие цены на Chery в Одессе
Страница: 1 2


