我有一个QT应用程序,我想用QTest测试它。关于我想做的事情:我有一个主窗口,其中有设置按钮。如果我单击此按钮,则会出现QDialog。我想测试这是否真的发生
MainWindow mwindow;
QTest::mouseClick(mwindow->showButton, QtCore::Qt::LeftButton)
然后我会检查新对话框中是否存在文本等等。
出现对话框但是 - 如何在不手动关闭测试的情况下关闭它?我如何测试其中的文本存在。如果我做对了,在显示对话框时我无法在测试中做任何事情。
我做错了什么?
答案 0 :(得分:1)
您可以使用QTimer
和QCOMPARE macro。
如果您的QMessgeBox
指针位于msgBox
,则位于QTimer
的{{1}}位,
timeout()
此外,您可以使用QTimer::singleShot测试文字。
QTest::keyClick( msgBox, Qt::Key_Enter);
<强> APPEND 强>
我认为this articles对于解决您的问题非常有用。
QCOMPARE( sourceText, targetText );
在上面的代码中,测试消息框将在2秒后关闭。 所以,你的代码可能......
QMessageBox test;
QDialog& dlg = test;
QTimer::singleShot( 2000, &dlg, SLOT( close() ) );
dlg.exec();
但是,我还没有测试过。
另外,请尝试阅读{{3}}。
我希望这可以帮到你。