使用 QtTest 对 QWizard 进行单元测试



我正在为包含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);

不可见和禁用的按钮在单击时不执行任何操作。向导中的"下一步"按钮通常会被禁用,直到填充向导页面中的必填字段。

相关内容

  • 没有找到相关文章

最新更新