Тестирование графических интерфейсов с помощью GoogleTest & QTest - PullRequest
0 голосов
/ 04 июня 2019

У меня есть графический интерфейс, и я хочу протестировать многие функции этого графического интерфейса.Проблема заключается в том, что все подвиджеты являются частными членами этого основного класса GUI.Как я могу протестировать мой основной графический интерфейс, когда я не могу заполнить ни один из этих подвиджетов, поскольку они являются частными для меня в тестовом классе?

Например, у меня есть несколько строк редактирования в виде полей в объекте пользовательского интерфейса,Эти правки строк очищаются и выгружаются в тип объекта QVariant, специфичный для этого графического интерфейса.Я не могу заполнить эти правки из своих тестовых функций, поскольку они недоступны из-за проблем с конфиденциальностью.Поэтому я не могу проверить, соответствует ли объект QVariant данным, предоставленным графическим интерфейсом.

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

Например,Я не могу позвонить

QTest::mouseClick(testGUI.ui->pushButton1, ...)

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

QTest::mouseClick(testGUI, ..., ..., ..., QPoint(70, 180));

, где QPoint - это абсолютная позиция кнопки относительно виджета, но даже это не вызывает нажатие кнопки.

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

...