Модульное тестирование QWizard с QtTest - PullRequest
0 голосов
/ 15 января 2020

Я пишу тестовые примеры для моего приложения QT, которое содержит QWizard. Я использую QtTest Framework. Но я не могу нажать кнопку «Далее» на странице мастера.

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 для второй страницы, поэтому я не думаю, что была нажата кнопка «Далее». Как я могу go перейти на следующую страницу во время модульного тестирования?

1 Ответ

1 голос
/ 15 января 2020

Я бы попробовал щелкнуть по нему левой кнопкой мыши.

QTest::mouseClick(myWizard.getNextButton(), Qt::LeftButton, Qt::NoModifier, QPoint(), 5000);

, а также убедиться, что в вашем тесте кнопка видна и активирована, например:

QCOMPARE( myWizard.getNextButton().isEnabled(), true);
QCOMPARE( myWizard.getNextButton().isVisible(), true);

Невидимый и отключенные кнопки ничего не делают при нажатии. А кнопки «Далее» в мастерах часто отключаются до тех пор, пока обязательные поля на странице мастера не будут заполнены.

...