Модульное тестирование модулей данных Delphi
Если вся бизнес-логика присутствует в модуле данных (TSQLDataSets и TDataSetProviders), как бы вы провели рефакторинг кода, чтобы сделать приложение более подходящим для модульного тестирования?
3 ответа
После последнего вопроса об этом я написал пост в блоге о том, как это сделать.
Некоторые основные советы:
- Ваши DataModules никогда не должны иметь никаких ссылок на формы или любые другие компоненты пользовательского интерфейса
- Поместите источники TDataSources в формы, а не в свои модули данных.
- Убедитесь, что нет никаких запросов для подтверждения и операций, которые требуют ввода пользователем кода DataModules.
- Вы не должны использовать какие-либо глобальные переменные.
Надеюсь это поможет.
Для автоматического создания тестов для DUnit вы можете использовать OpenCTF, который способен находить все компоненты и автоматически создавать тестовые случаи во время выполнения теста. Примеры тестов включают некоторые базовые тесты уровня доступа к данным.
http://sourceforge.net/projects/openctf/
а также