Название: keyClicks в QFileDialog'е Отправлено: Zerkin от Ноябрь 09, 2012, 09:37 Добрый день. Проблема в следующем.
Есть некоторый тестовый сценарий, в один момент открывается диалог: Код: fileName = QFileDialog::getOpenFileName(this, tr("Открыть файл "), В диалоге в строке ввода имени файла нужно ввести некоторую строку (к примеру "1.txt"), но с помощью keyClicks сделать не получается, так как первый параметр - привязка к виджету. Можно ли вообще как-нибудь симулировать клацанье по клавишам без привязки? Ибо фокус уже стоит в строке ввода имени файла в диалоге. Название: Re: keyClicks в QFileDialog'е Отправлено: _OLEGator_ от Ноябрь 09, 2012, 09:45 Если проблема только в вводе имени файла, то
Код
А если надо что-то эмулировать нажатия клавиш, то не понятно зачем такой изврат. Название: Re: keyClicks в QFileDialog'е Отправлено: Zerkin от Ноябрь 09, 2012, 10:05 Нет, в вводе никаких проблем нету. Я просто показал кусок кода непосредственно из проекта с приложением, а не из тестового. Чтобы было ясно, что диалог не экземпляр оперделенный в классе, и прямо на него указать как на виджет в keyClicks я не знаю как.
Я именно про "изврат", хотя не понимаю почему так обозвали вы это =) Создаю, считайте, сценарий тестового случая используя средства QtTest. Название: Re: keyClicks в QFileDialog'е Отправлено: Zerkin от Ноябрь 09, 2012, 10:32 И вот как быть не знаю
Название: Re: keyClicks в QFileDialog'е Отправлено: _OLEGator_ от Ноябрь 09, 2012, 10:44 Если пишешь тесты, то зачем эмулировать ввод в диалог выбора файла, ты же не диалог тестируешь а программу. Вообще должно имя файла сразу подаваться без всяких диалогов.
Название: Re: keyClicks в QFileDialog'е Отправлено: GreatSnake от Ноябрь 09, 2012, 10:48 Цитата: assistant On Windows, Mac OS X and Symbian^3, this static function will use the native file dialog and not a QFileDialog. Т.е. для Qt появившийся диалог будет black-box и никакой речи о виджетах в данном случае быть не может.Название: Re: keyClicks в QFileDialog'е Отправлено: Bepec от Ноябрь 09, 2012, 10:52 Тут ТС в принципе неправ.
Диалог уже оттестирован Qt и потому является доверенным классом, так сказать. Необходимо тестировать именно вашу функцию давая ей различные форматы путей. PS хотя тестовые сценарии для меня глушь. PPS оффтоп: Zerkin, на досуге не сделаете специально для меня маленький проектик - допустим тестирования нажатия пары кнопок и одной функции? А то документации по QtTest мне нехватает :) Заодно если пойму, мб и вам помогу разобраться. Название: Re: keyClicks в QFileDialog'е Отправлено: Zerkin от Ноябрь 09, 2012, 10:53 _OLEGator_, спасибо за ваши советы, можно конечно и так сделать, но у меня даже больше не тест программы как таковой, а сценарий её выполнения эммулируя действия пользователя =)
GreatSnake, т.е. я правильно понимаю, что с таким вариантом я ничего туда ввести не смогу через средства QtTest? Вариант только если изгаляться и определять файл-диалог внутри класса с гуи? Название: Re: keyClicks в QFileDialog'е Отправлено: Zerkin от Ноябрь 09, 2012, 10:57 Могу вот код предложить посмотреть =) Но опять же, это не тестирование как таковое, нужен именно сценарий выполнения, почему решил делать через C++/Qt, а не через какой-нибудь вижуал-тест - не знаю, наверно потому что в других технологиях разибиратсья лень, хотя выходить оно пока только боком =).
Код: void Test_MainWindow::test_mainWindow() Как видите, там несколько сценариев закомментированных. Название: Re: keyClicks в QFileDialog'е Отправлено: Zerkin от Ноябрь 09, 2012, 11:07 Bepec, у меня как раз и есть небольшое приложение, над которым и строю всю эту тестовую штуку, так что если интересно, то поделюсь.
Название: Re: keyClicks в QFileDialog'е Отправлено: Bepec от Ноябрь 09, 2012, 12:18 Очень интересно. Необходимость в тестах имеется, а вот разобраться всё никак руки не доходили.
Название: Re: keyClicks в QFileDialog'е Отправлено: _OLEGator_ от Ноябрь 09, 2012, 12:27 Хм, ну теперь понятно - тестирование интерфейса. Я даже не знаю, есть ли те, кто этим действительно занимаются и это работает, потому что тогда не нанимались бы тестеры.
Имхо, вы страдаете ерундой, тестирование интерфейса программно - это затратная не нужная операция, которая тестером выполняется и быстрее и дешевле. В конечном итоге вы задаете жесткую последовательность операций, которую можно переделать в прямые вызовы нужных функция с заданными аргументами. Тестируйте свои функции и корректность их работы. Название: Re: keyClicks в QFileDialog'е Отправлено: Bepec от Ноябрь 09, 2012, 12:46 _OLEGator_ - не путайте:
тестирование интерфейса на баги и тестирование интерфейса на работоспособность. В моём случае нужда возникла, когда имеется модульная система - при каждой правке модуля, имеется шанс испортить уже имеющийся/оттестированный функционал. Потому система накопительных тестов нужна - никто же не будет тестировщику давать тыкать по 10 раз одну и ту же последовательность действий и сверять результат. PS в таком случае мы уходим от функций. Получаем независимость от кода/функций. Важен только результат :D Название: Re: keyClicks в QFileDialog'е Отправлено: _OLEGator_ от Ноябрь 09, 2012, 13:44 "тестирование интерфейса на баги" - гениальная фраза.
Я и не путаю. Зачем тестировать нажатие кнопки и проверять вызывается ли слот (в терминах Qt)?! Я склонен полагать, что тестирование не должно быть привязано к интерфейсу, поэтому искренне не понимаю необходимость тестировать код через интерфейс. Название: Re: keyClicks в QFileDialog'е Отправлено: Bepec от Ноябрь 09, 2012, 13:50 Даша связала кнопку A с функцией B. Дима удалил функцию B и заменил её на функцию C с аналогичными параметрами. Что получит пользователь при нажатии на кнопку?
Название: Re: keyClicks в QFileDialog'е Отправлено: _OLEGator_ от Ноябрь 09, 2012, 14:01 Bepec, когда ты хоть немного будешь знаком с тестированием, написанием тестов, Unit-тестированием, в практическом плане, тогда можно конструктивно поговорить.
А так от тебя лишь философии сейчас можно добиться и размышления на тему. Название: Re: keyClicks в QFileDialog'е Отправлено: Bepec от Ноябрь 09, 2012, 14:26 Логично :) Даже не буду оспаривать.
Юнит тестирование я незнаю. Зато я знаю как весело, когда вводя новый функционал ломается старый :D PS Вопрос. "Тестирование интерфейса на баги" - в чём неправильность этой фразы? Название: Re: keyClicks в QFileDialog'е Отправлено: _OLEGator_ от Ноябрь 09, 2012, 14:31 Тестирование интерфейса на баги - это считай тестирование интерфейсных компонентов на баги.
Название: Re: keyClicks в QFileDialog'е Отправлено: Bepec от Ноябрь 09, 2012, 14:36 Эмм...
По сути получается проверка интерфейса на корректную реакцию по сценарию. Ннэ? Название: Re: keyClicks в QFileDialog'е Отправлено: _OLEGator_ от Ноябрь 09, 2012, 14:39 Я разделяю понятие интерфейса и ядра.
Ну а это я бы назвал тестирование корректной работы программы через интерфейс. Название: Re: keyClicks в QFileDialog'е Отправлено: Zerkin от Ноябрь 12, 2012, 08:16 Спасибо всем отписавшимся, в принципе, пришел к выводу, что затея не самая лучшая, для написания подобных сценариев лучше использовать какие-то другие средства.
Название: Re: keyClicks в QFileDialog'е Отправлено: Igors от Ноябрь 12, 2012, 12:21 Ну по-легкому, "попастись" (как обычно с Qt) возможности не видно. Но нативный диалог (и его хуки callback'и) никто не отменял. Да, посидеть денек-другой на каждой из платформ. Работа не творческая, но полезная, а то привыкли к "сладкой Qt жизни"
|