我有一个 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 是按钮相对于小部件的绝对位置,但即使这样也不会触发单击的按钮。
当这么多小部件是私有的并且用户无法访问时,我如何测试这些小部件?