0

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

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

4

0 回答 0