Unittest GUI клиент - PullRequest
       3

Unittest GUI клиент

0 голосов
/ 22 марта 2011

Для моего текущего проекта я разрабатываю графический интерфейс, который используется для настройки сервера. GUI использует некоторые сервисы для запуска команд.

Вы когда-нибудь разрабатывали модульные тесты для клиента с графическим интерфейсом? Можете ли вы предложить мне некоторые архитектурные подходы для того, чтобы мой проект мог быть тестируемым?

Спасибо, Раду

Ответы [ 4 ]

1 голос
/ 25 марта 2011

Я не пишу модульные тесты для клиентов GUI. Графический интерфейс делает мои тесты медленными.

Вместо этого разделите ваш клиент на оболочку графического интерфейса поверх набора классов. Ищите шаблоны PresentationModel или MVVM для получения дополнительной информации. Как только вы это сделаете, вы можете написать (перечислены в порядке убывания скорости и объема)

  • модульные тесты для классов. (быстро - микросекунды на тест)
  • Приемочные тесты, которые работают с клиентом, как реальный пользователь, но работают под кожей / с графическим интерфейсом, выполняя презентацию или ViewModels (медленнее, чем модульные тесты)
  • несколько приемлемых тестов пользовательского интерфейса (которые используют библиотеку, такую ​​как White ), которые проверяют, правильно ли подключен графический интерфейс к базовым классам. (самый медленный)
1 голос
/ 22 марта 2011

Помимо возможности "gui-тестирования" вашего приложения с помощью различных инструментов, разработанных для этого, я бы рекомендовал использовать некоторые пассивные представления шаблоны, такие как MVP для WinForms или MVVM (P) для WPF. Таким образом, почти весь интеллект находится в презентаторе, и, отмахиваясь от взгляда, вы можете проверить его довольно хорошо.

1 голос
/ 23 марта 2011

Привет.
Для «настольного» приложения используйте Белый , чтобы протестировать GUI из среды модульного тестирования.Для веб-приложения используйте Watin .

1 голос
/ 22 марта 2011

Вы можете попробовать библиотеки Dogtail для Linux или Pywinauto для Windows - тесты, которые я написал для этих библиотек, выглядели так: нажмите эту кнопку, затем посмотрите, не изменяется ли состояние сервера как и ожидалось.

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