У меня есть графический интерфейс, и я хочу протестировать многие функции этого графического интерфейса.Проблема заключается в том, что все подвиджеты являются частными членами этого основного класса GUI.Как я могу протестировать мой основной графический интерфейс, когда я не могу заполнить ни один из этих подвиджетов, поскольку они являются частными для меня в тестовом классе?
Например, у меня есть несколько строк редактирования в виде полей в объекте пользовательского интерфейса,Эти правки строк очищаются и выгружаются в тип объекта QVariant, специфичный для этого графического интерфейса.Я не могу заполнить эти правки из своих тестовых функций, поскольку они недоступны из-за проблем с конфиденциальностью.Поэтому я не могу проверить, соответствует ли объект QVariant данным, предоставленным графическим интерфейсом.
Я также не могу вызвать любую функцию QTest на определенных виджетах для запуска событий.
Например,Я не могу позвонить
QTest::mouseClick(testGUI.ui->pushButton1, ...)
, потому что пользовательский интерфейс является частным, а pushButton1 будет частным независимо от того, был ли он частью пользовательского интерфейса или нет.Поэтому я не могу симулировать события щелчка мышью на этих кнопках.Я также пытался использовать
QTest::mouseClick(testGUI, ..., ..., ..., QPoint(70, 180));
, где QPoint - это абсолютная позиция кнопки относительно виджета, но даже это не вызывает нажатие кнопки.
Как я могу проверить эти виджеты, когда большая часть виджета является закрытой и недоступной для пользователя?