Модульное тестирование обработчиков событий мыши - PullRequest
4 голосов
/ 08 февраля 2011

При модульном тестировании компонента у меня возник следующий вопрос:

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

  1. Имитация событий мыши с помощью вызовов Windows API.
  2. Использование защищенного хака для доступа к обработчикам защищенных событий и вызова ихнапрямую.

Я знаю, что модульное тестирование обычно ограничивается интерфейсом класса (что также означает, что тесты не должны изменяться при изменении внутренних классов), но стоит ли этот сценарийисключение?

Как вы обычно обрабатываете события мыши при модульном тестировании компонентов?

Ответы [ 3 ]

7 голосов
/ 08 февраля 2011

Лично я думаю, что вам нужно изменить архитектуру, чтобы упростить автоматическое тестирование пользовательского интерфейса.Причины, по которым эта статья хорошо сформулирована: http://blog.objectmentor.com/articles/2010/01/04/ui-test-automation-tools-are-snake-oil

В журнале Delphi когда-то была интересная статья об автоматическом тестировании пользовательских интерфейсов из кода (без специального инструмента тестирования графического интерфейса).Потребуется немного больше времени, чтобы найти, чем я ожидал, и может быть недоступен в Интернете.Будет обновлять мой ответ, когда / если я его найду.

Статья Джулиана Бакнолла «Создание легко тестируемых пользовательских интерфейсов» (DevExpress) была опубликована в выпуске 120 «The Delphi Magazine».К сожалению, статья больше не в сети.Вам придется купить полную коллекцию The Delphi Magazine: USB-накопитель емкостью 1 ГБ со всеми выпусками и всеми кодами, когда-либо опубликованными в The Delphi Magazine.Стоит 36 фунтов стерлингов!(И нет, я не получаю комиссию).

2 голосов
/ 08 февраля 2011

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

Для этого вам понадобится хороший отдельный графический интерфейс и логическое промежуточное программное обеспечение.

Можете ли вы предоставить некоторый код или дополнительную информацию о функциях, которые вы вызываете в мышиных событиях в вашем приложении.

1 голос
/ 08 февраля 2011

Я думаю, вы ищете автоматическое тестирование GUI.Например, вы можете попробовать Test Complete от Smart Bear.

DUnit действительно предлагает некоторые базовые средства тестирования GUI (в модуле GUITesting), но я не думаю, что он может быть недостаточно полным.для ваших нужд.

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