使用GoogleTest和QTest测试GUI

时间:2019-06-04 16:46:29

标签: c++ qt googletest privacy qtest

我有一个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是按钮相对于小部件的绝对位置,但即使这样也不会触发按钮被单击。

当这么多窗口小部件是私有的并且用户无法访问时,如何测试这些窗口小部件?

0 个答案:

没有答案