Я использовал Java раньше, и я мог сделать что -нибудь с Eclipse. Теперь, поскольку я хочу использовать Delphi для изменения программного обеспечения для обмена мгновенными сообщениями, мне интересно, как перенести систему реконструкции и модульного тестирования в Delphi. В книге говорится, что добавление модульных тестов в существующий код может углубить ваше понимание кода и служить основой для улучшения кода. Итак, чтобы создать такую гибкую платформу, я сделал небольшую попытку с Delphi2005 и Dunit и записал результаты ниже, чтобы поделиться с вами.
1. Скачать Delphi2005
Поскольку Борланд не продает профессиональные версии в Китае, учитывая высокую цену архитекторов и корпоративных версий, он может загрузить только D версию из Интернета для личного использования. Delphi2005 относительно большой по размеру, а Update1 также требует CD, поэтому рекомендуется использовать BT для загрузки 2CD -версии. Адрес семян следующим образом:
http://www.delphhifans.com/softview/821.html
2. Скачать SP1 Delphi2005
Говорят, что после применения этого патча он может быть быстрее, но патч медленно устанавливается, и вам все еще нужно использовать компакт -диск. Адрес загрузки следующим образом:
http://www.delphhifans.com/softview/970.html
3. Скачать Dunit
https://sourceforge.net/projects/dunit/
4. Установите Delphi2005+SP1
Обратите внимание, что в Keygen есть регистр, и при установке необходимо одновременно установить версии Delphi .net и Win32, но C# Builder не имеет значения. Потому что, если вы только установите версию Win32, функция реконструкции будет недоступна (это ошибка в Delphi2005, которая проявляется как окно исключения .NET .NET при рефакторинге).
5. Упростить Delphi2005
Поскольку версия .NET была установлена одновременно на предыдущем шаге, Delphi стал очень медленным при запуске. Это может быть достигнуто путем изменения реестра и удаления некоторых пакетов IDE. Конкретный метод состоит в том, чтобы добавить параметр -rxxx после целевой мишени Delphi, то есть BDS.Exe -Rxxx. Это XXX для вас, чтобы указать, и тогда вы найдете эти проклятые пакеты в hkey_current_user/программное обеспечение/Borland/xxx (это имя, которое вы выбрали xxx) /3.0/ Известные пакеты IDE. Обратите внимание, что вы не можете удалить его слишком чисто, как другие очищенные молекулы Win32 в Интернете, так как это будет бесполезно для реконструкции. Относительно простой список, который я получал после экспериментов много раз, выглядит следующим образом
"$ (Bds) // bin // vclmenudesigner90.bpl" = "(без названия)"
"$ (Bds) // bin // win32debugproide90.bpl" = "(без названия)"
"$ (BDS) // bin // htmide90.bpl" = "HTML -дизайнерский пакет"
"$ (Bds) // bin // iteidew3290.bpl" = "Борланда интегрированная трансляционная среда для Win32"
"$ (Bds) // bin // srcmanide90.bpl" = "(без названия)"
"$ (Bds) // bin // todoide90.bpl" = "borland todo"
"$ (Bds) // bin // htmlhelp290.bpl" = "Borland htmlhelp Viewer"
"$ (Bds) // bin // idefilefilters90.bpl" = "ide filefilters"
"$ (Bds) // bin // startpageide90.bpl" = "Borland Start Page Page Package"
"$ (BDS) // bin // Refactoride90.bpl" = "Borland Core Refactoring Package"
"$ (Bds) // bin // dbkdebugide90.bpl" = "(без названия)"
"$ (Bds) // bin // exceptionDiag90.bpl" = "(Untitled)"
"$ (BDS) // bin // deployide90.bpl" = "Развертывание менеджера"
"$ (Bds) // bin // plugview90.bpl" = "Пакет просмотров с задолженностью дерева"
"$ (Bds) // bin // coreproide90.bpl" = "core ide pro пакет"
"$ (Bds) // bin // idetools90.bpl" = "
"$ (Bds) // bin // unittestide90.bpl" = "(без названия)"
"$ (Bds) // bin // stistoryide90.bpl" = "(без названия)"
"$ (Bds) // bin // htmltidy90.bpl" = "html Tidy Formatter"
"$ (Bds) // bin // htmlfmt90.bpl" = "HTML внутреннее формат
"$ (Bds) // bin // mlcc90.bpl" = "Пакет завершения кода языка разметки"
"$ (Bds) // bin // delphivclide90.bpl" = "Delphi VCL Designer Package"
"$ (Bds) // bin // delphicoreproide90.bpl" = "(без названия)"
"$ (Bds) // bin // win32debugide90.bpl" = "(без названия)"
"$ (Bds) // bin // htmlide90.bpl" = "(без названия)"
"$ (Bds) // bin // delphide90.bpl" = "Delphi Win32 Ide Personaly"
"$ (Bds) // bin // mtspro90.bpl" = "(без названия)"
"$ (Bds) // bin // mtsent90.bpl" = "(без названия)"
"$ (Bds) // bin // iteidenet90.bpl" = "Борланд интегрированная трансляционная среда для .net"
"$ (Bds) // bin // netimportwiz90.bpl" = "(без названия)"
"$ (Bds) // bin // dataexplorer90.bpl" = "(Untitled)"
Хотя это все еще немного медленно, чтобы начать, это может наконец -то вынести.
6. Скомпилируйте и установите Dunit
Используйте метод, который вы знаете для компиляции DUNIT в DCU и поместите его в указанный вами каталог. И добавьте этот каталог в библиотечный путь Delphi Tools-> Options-> Delphi Options-> Library-Win32.
Также компилируйте dunit.exe
7. Создать проект
Я рекомендую разделить интерфейс и фон при написании программы Delphi, особенно для открытия двух проектов, одного обычного проекта VCL и другого проекта DLL. Нет, нет, я не хочу позволять вам делиться кодом в DLL. Этот проект DLL содержит файлы, которые являются фоновым содержанием, а также тесты на фоне. Сгенерированный DLL используется для DUNIT, из которого DUNIT может прочитать тест и запустить его. Фактически, проект в детали GUI содержит все файлы.
Проект разделен на три части: графический интерфейс, ядро и тест. Project One включает в себя GUI+Core, а второй проект включает в себя Core+Testcore. Вывод проекта 1 - программа Win32exe. Второй вывод проекта является программа Win32dll.
Затем вы можете поместить эти два проекта в проектную группу.
8. Напишите тесты
Проект 1 ничем не отличается от написания программы Dephi. Тесты написаны в Engineering № 2, и я называю имя инженера № 2. Давайте добавим базовый тест в ядро, чтобы проверить, равно ли 1+1.
Создать Testcase
Единый тест -базичный;
интерфейс
Использование
Testframework;
тип
Tbasic = класс
публичный
Функция добавить (a, b: целое число): целое число;
конец;
Ttestbasic = class (ttestcase)
Частный
FBASIC: TBASIC;
публичный
настройка процедуры;
процедура разрыва;
опубликовано
процедура TestAdd;
конец;
Выполнение
function tbasic.add (a, b: целое число): целое число;
Начинать
Результаты: = A + B;
конец;
Процедура ttestbasic.setup;
Начинать
Fbasic: = tbasic.create;
конец;
Процедура ttestbasic.teardown;
Начинать
Fbasic.free;
конец;
Процедура ttestbasic.testadd;
Начинать
Checkequals (2, fbasic.add (1, 1));
конец;
Инициализация
RegisterTest ('', ttestbasic.suite);
конец.
Изменить core.bdsproj (kao, какой странный суффикс)
Изменение начинается
экспорт
RescientedEdtests имя 'test';
конец.
И добавить TestFramework в разделе «Использование».
DUNIT использует эту функцию экспорта, чтобы найти TestCase, который мы зарегистрировали в DLL.
9. запустить Dunit
Добавьте Dunit в меню «Инструменты», это гораздо удобнее. Просто параметры трудно заполнить. Я не использовал макрос внутри, я просто наполнил абсолютный путь. Если вы заполняете абсолютный путь, как я, выберите DUNIT в меню «Инструменты», и вы сможете напрямую увидеть тестовый список.
Если вы не добавляете Dunit в меню «Инструменты», вам необходимо найти DLL, скомпилированный из основного проекта, core.dll, в окне выбора файла File-> Load Test.
———
До сих пор есть как рефакторические функции, так и модульные тестирование. Все, что осталось, - это добавить тесты к существующему коду, а затем медленно рефакторировать их.