我正在为包含QWizard
的QT应用程序编写单元测试用例。我正在使用QtTest
框架。但是我无法在我的向导页面上单击"下一步"按钮。
welcomePage->m_installedVersion->lineEdit()->setText("1102");
welcomePage->m_upgradeVersion->lineEdit()->setText("12");
welcomePage->completeChanged(); //Only the above two text fields are mandatory so Next button should be enabled here, but it is not. So I have manually enabled it below.
myWizard.getNextButton()->setEnabled(true);
while( !myWizard.getNextButton()->isEnabled())
{
}
//Trying different ways to click on Next
QTest::mouseClick(myWizard.getNextButton(), Qt::RightButton, Qt::NoModifier, QPoint(), 5000);
QSignalSpy(myWizard.getNextButton(), &QPushButton::clicked);
myWizard.getNextButton()->click();
没有调用第二页的initializePage
,所以我认为没有单击"下一步"按钮。如何在单元测试时转到下一页?
我会尝试用鼠标左键单击它。
QTest::mouseClick(myWizard.getNextButton(), Qt::LeftButton, Qt::NoModifier, QPoint(), 5000);
还要确保在测试中按钮可见且已启用,例如:
QCOMPARE( myWizard.getNextButton().isEnabled(), true);
QCOMPARE( myWizard.getNextButton().isVisible(), true);
不可见和禁用的按钮在单击时不执行任何操作。向导中的"下一步"按钮通常会被禁用,直到填充向导页面中的必填字段。