如何使用 qtestlib 测试完整的 Qt5 GUI?
How can I test a full Qt5 GUI using qtestlib?
在我的 Qt5 C++ 小部件应用程序中使用 qtestlib
,我如何测试我的 full GUI ?
在 qtestlib
的 documentation 中,解释了我如何通过模拟按键等来测试一个单独的 QWidget
,但是对于完整的 [=27] 这似乎是不可能的=],因为我的 UI 的各个小部件隐藏在 自动生成的 ui_XXX.h
文件中。
那么我该怎么做呢?
在您的 ui 文件中,您可以为小部件命名。然后,您可以从顶级小部件中搜索子项。
例如,要测试 Label 是否反映输入到 LineEdit 中的字符,您可以使用:
MainWindow win;
QLineEdit *edit = win.findChild<QLineEdit *>("myLineEdit");
QTest::sendKeys(edit, "Example");
QLabel *label = win.findChild<QLabel *>("myLabel");
QCOMPARE(label->text(), "Example");
在我的 Qt5 C++ 小部件应用程序中使用 qtestlib
,我如何测试我的 full GUI ?
在 qtestlib
的 documentation 中,解释了我如何通过模拟按键等来测试一个单独的 QWidget
,但是对于完整的 [=27] 这似乎是不可能的=],因为我的 UI 的各个小部件隐藏在 自动生成的 ui_XXX.h
文件中。
那么我该怎么做呢?
在您的 ui 文件中,您可以为小部件命名。然后,您可以从顶级小部件中搜索子项。
例如,要测试 Label 是否反映输入到 LineEdit 中的字符,您可以使用:
MainWindow win;
QLineEdit *edit = win.findChild<QLineEdit *>("myLineEdit");
QTest::sendKeys(edit, "Example");
QLabel *label = win.findChild<QLabel *>("myLabel");
QCOMPARE(label->text(), "Example");