Форум программистов, компьютерный форум, киберфорум
Разработка и тестирование
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
 Аватар для Luca Brasi
892 / 204 / 55
Регистрация: 06.11.2015
Сообщений: 2,288
Записей в блоге: 2

Правильный подход к тестированию

08.10.2020, 09:26. Показов 1098. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Решил свой учебный UI проект покрыть тестами. В целом, пока замахнулся на слой данных.
Есть ряд методов, которые взаимодействуют с файлами. Например побайтовое копирование
Такое вообще тестируется? А главное как... Мне с собой каждый раз волочить какие-то файлы на которых это проверять?)
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
  public static void CopyByBytes(string InputFile, string OutputDir)
        {
           
            var fsize = new FileInfo(InputFile).Length;
            var bytesForPercent = fsize / 100;
            var buffer = new byte[bytesForPercent];
 
            string OutputFile = Path.Combine(OutputDir, Path.GetFileName(InputFile));
 
            using (var inputFs = new FileStream(InputFile, FileMode.Open, FileAccess.Read))
            using (var outputFs = new FileStream(OutputFile, FileMode.Create, FileAccess.Write))
            {
                int counter = 0;
                while (inputFs.Position < inputFs.Length)
                {
                    var wasRead = inputFs.Read(buffer, 0, (int)bytesForPercent);
                    outputFs.Write(buffer, 0, wasRead);
                    FileCopyEventArgs args = new FileCopyEventArgs();
                    args.FileName = InputFile;
                    args.PercentCompleted = counter;
                    NotifyPercentCompleted(args);
                    counter++;
                    
                }
            }
        }
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.10.2020, 09:26
Ответы с готовыми решениями:

Подход к тестированию
Сейчас тестирование модуля реализовано в виде обычного консольного приложения, в котором подготавливается окружение и потом в требуемом...

Правильный подход к реализации задачи
Есть проект, который хранится в XML. Как правильно реализовать взаимодействие с проектом? Т.е. можно через lxml каждый раз обращаться...

Правильный подход к созданию анимации
Всем привет!!! Такой вопрос.У меня есть 6 картинок, я делаю анимацию через таймер.По каждому Tick меняю картинку ресурса для image. ...

5
Модератор
Эксперт функциональных языков программирования
3134 / 2281 / 469
Регистрация: 26.03.2015
Сообщений: 8,877
09.10.2020, 12:27
При инициализации группы тестов создавать файл.

з.ы. Сам метод - не очень. Неизвестного размера буффер, фиксированная функция для уведомления.
0
 Аватар для Luca Brasi
892 / 204 / 55
Регистрация: 06.11.2015
Сообщений: 2,288
Записей в блоге: 2
12.10.2020, 13:42  [ТС]
Shamil1, с точки зрения тестирования не очень, или вообще не очень? В целом, метод работает не плохо.
Как бы Вы порекомендовали сделать?
0
Модератор
Эксперт функциональных языков программирования
3134 / 2281 / 469
Регистрация: 26.03.2015
Сообщений: 8,877
12.10.2020, 14:00
Вообще не очень.

1. Я бы использовал буффер фиксированного размера (4кб).

2. Либо передавал NotifyPercentCompleted в функцию CopyByBytes в качестве аргумента. Либо написал класс и в нём событие.
0
 Аватар для Luca Brasi
892 / 204 / 55
Регистрация: 06.11.2015
Сообщений: 2,288
Записей в блоге: 2
16.10.2020, 14:59  [ТС]
Цитата Сообщение от Shamil1 Посмотреть сообщение
1. Я бы использовал буффер фиксированного размера (4кб).
Это золотая середина? Мне почему то думалось, буффер зависит от размера копируемого файла.
Цитата Сообщение от Shamil1 Посмотреть сообщение
Либо передавал NotifyPercentCompleted в функцию CopyByBytes в качестве аргумента
не совсем понятно, в виде делегата? И еще вопрос, чтобы это дало и облегчило бы это подход в тестировании?
0
Модератор
Эксперт функциональных языков программирования
3134 / 2281 / 469
Регистрация: 26.03.2015
Сообщений: 8,877
16.10.2020, 16:09
Цитата Сообщение от Luca Brasi Посмотреть сообщение
Мне почему то думалось, буффер зависит от размера копируемого файла.
Зависит от кэша процессора, размера блоков файловой системы и так далее. Может даже зависить от используемого языка программирования (если код неявно использует сборщик мусора).
4к - это некая золотой минимум. Если уменьшить, то почти наверняка будет медленнее. А если увеличить, то может будет медленнее, а может быстрее.

Цитата Сообщение от Luca Brasi Посмотреть сообщение
не совсем понятно, в виде делегата?
Да. В C# есть делегаты. Тип Func<> автоматически приводится к делегату, когда требуется.
Сейчас у Вас внутри NotifyPercentCompleted жёстко прописано, кого уведомлять. А можно уведомлять всех желающих (подписавшихся на событие), либо принимать функцию (ту же NotifyPercentCompleted) в качестве аргумента.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.10.2020, 16:09
Помогаю со студенческими работами здесь

Правильный ли подход к разработке на NodeJS с Express?
Итак, как выглядит проект, начинаем с app.js и заканчиваем темплейтом ejs: 1. Все конфиги, сессии и тд подключается в app.js 2. В...

Правильный подход к написанию программы с нуля
Итак, назрел девайс, чуть более сложный, чем те, которые доводилось делать ранее. По отдельности с каждым модулем работать приходилось, но...

Правильный подход при взаимодйствии с Windows Forms
Смотрите, в PHP есть такой подход в написании сайтов (web-приложений) - MVC, подскажите, а тут при взаимодействии с Windows Forms есть...

Какой подход правильный в хранении и отображении картинок в приложении?
Доброго времени суток, уважаемые форумчане. Столкнулся вот с какой ситуацией. У меня в приложении (iPnone) хранится 120 картинок и они...

User-mode драйвер / фильтр для сканера штрих-кодов. Какой правильный подход при разработке?
У меня сейчас стоит задача сделать некую программу или юзермодный драйвер если точнее, которая позволяла бы получать ивенты сканера и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru