function CountMe: Integer;
const ReferenceCount: Integer = 0;
begin
Inc(ReferenceCount);
Result:= ReferenceCount;
end;
Предположим, что вы вызываете ее в операторе Assert. Таким образом, в коммерческой версии, которая игнорирует все операторы Assert, количество вызовов функции будет не таким, как в отладочной версии. Так что будьте внимательны и осторожны.
Модульное тестирование
Тема модульного тестирования обширна и многообразна, и писать о ней можно много, но я ограничусь буквально несколькими словами. Кстати, когда речь идет о модульном тестировании, слово модуль не имеет отношения к концепции модулей Delphi и подразумевает функцию, подсистему или другой хорошо определенный программный модуль.
Коротко говоря, идея модульного тестирования состоит в разбивке приложения на функциональные единицы и тестировании каждой из них по отдельности. Это часто означает написание одного или нескольких небольших приложений-оболочек, цель создания которых — отработать один из модулей вашего приложения. Ваша задача — выявить все возможные ошибки, так как сообщения о внутренних ошибках программы, допустимые в тестовых версиях, недопустимы в коммерческих. Сообщение об ошибках во время работы коммерческой версии приложения эквивалентны сообщению, приведенному на рис. 2.4
Рис. 2.4.О чем думают пользователи, когда ваша программа выводит сообщение об ошибке?..
Ну, и наконец, философское замечание о следствии из закона Мэрфи для программирования „В любой работающей программе есть хотя бы одна ошибка, при исправлении которой вносится, по крайней мере, еще две ошибки“. Даже в наилучших коммерческих программах содержатся ошибки, а потому вопрос о нахождении и исправлении всех ошибок не может даже быть поставлен. Но следует сделать все возможное, чтобы обнаружить и ликвидировать как можно больше ошибок. Следующий раздел этой главы посвящен описанию инструментов Delphi для локализации и исправления ошибок.
Интегрированный отладчик Delphi
Давным-давно, когда компьютеры были большими, а именно — лет двадцать назад, отладка заключалась в копании в огромных кипах бумаги с исходными текстами и распечатках результатов работы и потреблении невероятного количества кофеина, а зачастую и анальгина… Современный программист, особенно если он программирует на Delphi, больше не чернорабочий от программирования с крепкими от переворачивания центнеров бумаги мускулами, а „белый воротничок“, окруженный разнообразными ''электронными мухобойками», предоставляемыми Delphi.
Интегрированный отладчик Delphi переполнен полезными, не очень полезными и совсем бесполезными возможностями, и кажется, что изучить их просто невозможно. Однако использование отладчика Delphi просто, как апельсин: ведь когда вы компилируете свою программу и запускаете ее из среды Delphi, вы уже пользуетесь встроенным отладчиком, хотя, вероятно, и не подозреваете об этом. Как всегда, 90 % проблем решается 10 % возможностей программного обеспечения, а потому все разнообразие работы с отладчиком вы можете изучить позднее, при решении оставшихся 10 % ваших проблем.
Настройка IDE для отладки
Для работы со встроенным отладчиком Delphi 4 его интегрированная среда разработки (IDE) предлагает целую серию установок, большинство из которых вам лучше не трогать, а оставить, как есть (по умолчанию). Однако если вы все-таки решили изменить установки, выберите команду Tools/Options и в появившемся диалоговом окне Environment Options щелкните на вкладке Preferences (она показана на рис 2.5)
Ниже перечислены опции вкладки Preferences и их функции.
Integrated Debugging. Позволяет включать и отключать встроенный отладчик. Если вы отключите отладчик, отладочные команды в меню Run станут недоступными.
Совет:Если у вас возникли проблемы при запуске приложения из интегрированной среды, возможно, это вызвано конфликтом встроенного отладчика с другими приложениями, запущенными в системе. Попробуйте отключить встроенный отладчик и, если это поможет, будьте уверены — проблема кроется в одном из уже запущенных в системе приложений. Лучшим решением будет перезагрузка и последующий запуск только абсолютно необходимых приложений.
Рис. 2.5.Использование вкладки Preferences для настройки интегрированного отладчика Delphi.
Step Program Block. Эта опция определяет, должен ли отладчик останавливаться перед началом выполнения основного блока begin. . end при трассировке программы. Обычно данная опция отключена, и включать ее имеет смысл при добавлении кода в основной блок программы либо при отладке консольного приложения.
Читать дальше