Как мне подделать ввод для тестирования формы? - PullRequest
6 голосов
/ 31 января 2009

Я создаю тестовый жгут для своего приложения Delphi 2009. Проверка логики довольно проста. Убедиться, что формы работают должным образом, немного сложнее. Мне нужен способ имитировать реальный пользовательский ввод, открыть форму, заставить ее думать, что пользователь печатает определенные вещи и нажимает на определенные места, и убедиться, что он реагирует правильно. Я уверен, что есть способ сделать это, я просто не знаю, что это такое. Кто-нибудь знает как это сделать?

Ответы [ 8 ]

6 голосов
/ 31 января 2009

DUnit имеет GUITesting.pas , который расширяет тестирование, так что вы можете отправлять клики, ключи и текст на элементы управления в форме, но это все.

В прошлом году там упоминались Zombie Фреймворк для тестирования графического интерфейса, который использовался внутренне разработчиками CodeGear, но ничего, так как Стив ушел в Falafel.

5 голосов
/ 01 февраля 2009

TestComplete - хороший выбор. Еще одним коммерческим вариантом для тестирования графического интерфейса пользователя является SmarteScript :

1 голос
/ 03 февраля 2009

Похоже, что в DUnit есть некоторые функции графического тестирования: delphiextreme.com

1 голос
/ 31 января 2009

Если в этом нет ничего специфического для Deliphi, и вам нужно быстрое решение, попробуйте несколько простых в освоении скриптовых решений, таких как AutoIt . Для более сложных сценариев вы можете посмотреть Скриптовое тестирование GUI с Ruby .

Но имейте в виду, что вам не следует тестировать слишком много функциональности через графический интерфейс, потому что такие тесты с большой вероятностью могут сломаться. Если вы в конечном итоге слишком много тестируете GUI, вам может потребоваться переосмыслить дизайн: отделите логику от GUI и протестируйте логику напрямую с помощью некоторой инфраструктуры xUnit.

Также взгляните на аналогичный вопрос о автоматизации тестирования форм Windows * .

1 голос
/ 31 января 2009

В этом есть две части: во-первых, как автоматизировать графический интерфейс, а во-вторых, как мне «проверить», работает ли он / не работает.

Первое: для автоматизации графического интерфейса в Windows попробуйте использовать AutoIT. Это бесплатный инструмент для управления интерфейсами Windows, отправки событий ввода с клавиатуры и т. Д. http://www.autoitscript.com/autoit3/

Во-вторых: Тестирование - это большая область, и я не буду пытаться дать вам вихревой тур. Но механизм управления графическим интерфейсом пользователя и тестирования результатов может быть обработан с использованием встроенного в AutoIT языка, подобного AutoIT, или в сочетании с таким языком, как Ruby и TestUnit (встроенная инфраструктура модульного тестирования rubys).

1 голос
/ 31 января 2009

хорошо для .net есть NUnitForms для тестирования графического интерфейса приложения win. не знаю ни одного открытого исходного кода для delphi.

Тест завершен может тестировать формы delphi, но это не бесплатно.

0 голосов
/ 23 февраля 2012

OpenCTF хорошо для вас.

Цитата:

OpenCTF - это дополнение к тестовой среде для Embarcadero Delphi®, которое выполняет автоматические проверки всех компонентов в формах (или модулях данных).

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

Для добавления тестов OpenCTF в набор тестов DUnit требуется всего несколько строк кода. Написание собственных тестов компонентов занимает всего несколько секунд.

OpenCTF основан на тестовой среде с открытым исходным кодом DUnit и расширяет это специализированные тестовые классы и вспомогательные функции.

Пожалуйста, напишите здесь , чтобы скачать.

0 голосов
/ 31 января 2009

Не совсем ответ на ваш вопрос, но есть очень хорошая страница (ИМХО, конечно) о GUI Architectures Мартина Фаулера, в которой в качестве последней записи представлена ​​архитектура "Скромный вид" ориентированы конкретно на разработку программного обеспечения, основанного на тестировании. Стоит посмотреть.

Это, конечно, не поможет вам с задачей проверки правильности подключения всех элементов управления и обработки всех необходимых событий, но это должно помочь свести к минимуму объем кода GUI, который требует тестирования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...