Впервые задумался над написанием модульного теста для проверки копирования и чтения файлов (Unit написал и использовал заглушки Moq), но не знаю как это сделать. Использую N-Unit. Что необходимо для реализации? В проект с тестами добавить каталог с файлами для физического копирования и destination каталог? Код который у меня реализует работу с файлами:
public IEnumerable<string> GetFiles(string path)
{
var files = new List<string>();
var directories = new List<string>();
try
{
files.AddRange(Directory.GetFiles(path));
directories.AddRange(Directory.GetDirectories(path));
foreach (string dir in directories)
files.AddRange(GetFiles(dir));
}
catch (IOException e)
{
Debug.WritLine($"Ошибка, файлы отсутсвуют {e.Message}");
}
catch (UnauthorizedAccessException e)
{
Debug.WritLine($"Отказано в доступе {e.Message}");
}
return files;
}
public void CopyAllFiles(string root, string destinationPath)
{
Queue<string> directories = new Queue<string>();
if (!Directory.Exists(root))
{
throw new ArgumentException();
}
directories.Enqueue(root);
while (directories.Count > 0)
{
string currentDir = directories.Dequeue();
string[] subDirs = null;
try
{
subDirs = Directory.GetDirectories(currentDir);
}
catch (UnauthorizedAccessException e)
{
Debug.WritLine($"Отказано в доступе{e.Message}");
}
catch (DirectoryNotFoundException e)
{
Debug.WritLine($"Папка не найдена{e.Message}");
}
string[] files = null;
try
{
files = Directory.GetFiles(currentDir);
}
catch (UnauthorizedAccessException e)
{
Debug.WritLine($"Отказано в доступе{e.Message}");
}
catch (DirectoryNotFoundException e)
{
Debug.WritLine($"Папка не найдена{e.Message}");
}
// Бегаем по папкам и подпапкам копируя все файлы
foreach (string file in files)
{
try
{
FileInfo fi = new FileInfo(file);
File.Copy($"{currentDir}/{fi.Name}", $"
{destinationPath}/{fi.Name}", true);
{fi.CreationTime}";
Console.WriteLine($"{currentDir}/{fi.Name}
{destinationPath}/{fi.Name}");
Console.WriteLine($"{fi.Name}: {fi.Length},
{fi.CreationTime}");
}
catch (FileNotFoundException e)
{
Debug.WritLine($"Файл не найден{e.Message}");
}
}
foreach (string str in subDirs)
directories.Enqueue(str);
}
public void СlearFolder(string folderName)
{
var info = new DirectoryInfo(folderName);
foreach (var file in info.GetFiles())
{
file.Delete();
}
foreach (var directoryInfo in info.GetDirectories())
{
СlearFolder(directoryInfo.FullName);
directoryInfo.Delete();
}
}
Хотелось бы найти правильное понимание вопроса и посмотреть пример хотя бы на одном методе.
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Виртуальный выделенный сервер (VDS) становится отличным выбором
Как мне получить файл который находится в определенной директории в АсеттБандле? директорию "snd2" я добавил в AssetBundle,теперь мне нужно из АссетБандла...
Всем приветТакая ситуация, нужно настроить utm метки - в get запрос добавляется примерно такая информация: ?utm_source=news4&utm_medium=email&utm_campaign=spring-summer
Подскажите пожалуйста, как правильно реализовать работу с двумя сущностями (таблицами) продукт и заказ в MySQL phpЕсть вариант смежных таблиц...