c++ 使用GoogleTest和QTest测试GUI

pu82cl6c  于 2023-03-25  发布在  Go
关注(0)|答案(1)|浏览(147)

我有一个GUI,我想测试这个GUI的许多功能。问题是,子部件都是这个主GUI类的私有成员。当我无法填充任何这些子部件时,我如何测试我的主GUI,因为它们在测试类中对我来说是私有的?
例如,我在ui对象中有多个行编辑作为字段。这些行编辑被抓取并转储到特定于此GUI的QVariant对象类型中。我无法从测试函数填充这些编辑,因为由于隐私问题,它们无法访问。因此,我无法测试QVariant对象是否与GUI提供的数据匹配。
我也不能在特定的小部件上调用任何QTest函数来触发事件。
比如我不能打电话
QTest::mouseClick(testGUI.ui->pushButton1, ...)
因为ui是私有的,而pushButton1无论是否是UI的一部分都是私有的。因此,我也不能在这些按钮上模拟鼠标单击事件。我还尝试使用
QTest::mouseClick(testGUI, ..., ..., ..., QPoint(70, 180));
其中QPoint是按钮相对于小部件的绝对位置,但即使这样也不会触发按钮单击。
当这些小部件的大部分都是私有的,用户无法访问时,我如何测试这些小部件?

bnl4lu3b

bnl4lu3b1#

您可以尝试创建共享库,其中包括目录build-xxx-desktop-debug。然后在www.example.com中test.pro创建库。
希望能成功。

相关问题