2

Using qtestlib with my Qt5 C++ widgets application, how can I test my full GUI?

In the documentation for qtestlib, it is explained how I could test an indivdual QWidget by simulating keypresses etc, however this seems impossible to do for a full UI, because the individual widgets of my UI are hidden inside the automatically generated ui_XXX.h file.

So how would I go about doing this?

Mr. Developerdude
  • 9,118
  • 10
  • 57
  • 95

1 Answers1

4

In your ui files you can give names to the widgets. You can then search through the children from your toplevel widget.

For example to test that a Label reflects the characters entered into a LineEdit you could use:

MainWindow win;

QLineEdit *edit = win.findChild<QLineEdit *>("myLineEdit");
QTest::sendKeys(edit, "Example");

QLabel *label = win.findChild<QLabel *>("myLabel");
QCOMPARE(label->text(), "Example");
David Marquant
  • 2,039
  • 14
  • 12