如何使用 qtestlib 测试完整的 Qt5 GUI

How can I test a full Qt5 GUI using qtestlib?

本文关键字:Qt5 GUI 何使用 qtestlib 测试      更新时间:2023-10-16

qtestlib与我的Qt5 C++小部件应用程序一起使用,如何测试完整的GUI?

qtestlib 的文档中,解释了我如何通过模拟按键等来测试个人QWidget,但是对于完整的 UI,这似乎是不可能的,因为我的 UI 的各个小部件隐藏在自动生成ui_XXX.h文件中。

那么我将如何去做呢?

在 UI 文件中,您可以为小部件命名。然后,您可以从顶级小部件中搜索子项。

例如,要测试标签是否反映了输入到LineEdit中的字符,您可以使用:

MainWindow win;
QLineEdit *edit = win.findChild<QLineEdit *>("myLineEdit");
QTest::sendKeys(edit, "Example");
QLabel *label = win.findChild<QLabel *>("myLabel");
QCOMPARE(label->text(), "Example");