Russian Qt Forum
Ноябрь 01, 2024, 08:35 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Симуляция действий пользователя  (Прочитано 3044 раз)
bistrform
Гость
« : Октябрь 01, 2011, 07:59 »

Добрый день. Есть задача - существует готовое приложение (в этом случае - пример addressBook из 4.7/examples/itemview/addressbook) и заданный набор действий, которые надо совершить (надеть на кнопку, заполнить поля, переключиться на вкладку и т.д). Последовательность корректная, то есть следующее действие возможно выполнить на каждом шаге. Необходимо эти действия автоматизировать - после запуска приложения пользователь лишь смотрит на экран.
По сути, надо реализовать самый простой вариант тестирования гуя приложения. Лучшее, что я придумал - понапривязывать своих сигналов к соответствующим слотам и эмитить эти сигналы по очереди. В таком случае не понимаю, как проверять успешность действий (пусть последовательность корректная, мало ли то случится) и откуда вызывать функцию с последовательностью эмитов (не из мэйна же). Может есть более удачный вариант? Напрямую методы типа pushButton->click() не повызываешь, там все приватное.
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4746



Просмотр профиля WWW
« Ответ #1 : Октябрь 01, 2011, 11:37 »

Напрямую методы типа pushButton->click() не повызываешь, там все приватное.
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
LisandreL
Птица говорун
*****
Offline Offline

Сообщений: 984


Надо улыбаться


Просмотр профиля
« Ответ #2 : Октябрь 01, 2011, 12:50 »

kambala, в этом примере все виджеты-элементы управления объявлены как приватные, я думаю автор об этом.
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4746



Просмотр профиля WWW
« Ответ #3 : Октябрь 01, 2011, 13:17 »

в таком случае простой путь - поменять "агрегацию ГУИ" на множественное наследование. а не обязательно простой, но канонічный путь - использовать какой-нить фреймворк для тестирования (примеров, увы, не подскажу).
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
ieroglif
Гость
« Ответ #4 : Октябрь 01, 2011, 13:37 »

http://www.prog.org.ru/topic_18620_0.html
Записан
bistrform
Гость
« Ответ #5 : Октябрь 01, 2011, 19:36 »

Цитировать
в этом примере все виджеты-элементы управления объявлены как приватные, я думаю автор об этом.
Да, автор именно об этом.
Насчет фреймворка для тестирования - в простейшей реализации функции такого фреймворка и состоит задача. Можно пользоваться только стандартными средствами. Реализация не подразумевает ничего сложного вроде создания собственных библиотек и подключения сторонних решений. Нужно в уже существующий код внедрить функцию (функции), которые будут обладать необходимой функциональностью. При использовании эмита есть ли возможность контроля нестандартных ситуаций?
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.086 секунд. Запросов: 23.