這裏先提下基本概念
官方的模擬GUI事件,就是調用QTest提供的函數,去模擬用戶鼠標點擊,用戶輸入等效果。從而達到模擬的功能,感覺這個功能非常的好。
如:
QTest::keyClicks()主要是模擬鍵盤。
QTest::keyPress()與QTest::keyRelease()模擬鍵盤按下和釋放
QTest::mouseClick()鼠標左鍵
QTest::mouseDclick()鼠標左鍵雙擊
QTest::mouseMove()鼠標移動
QTest::mousePress()鼠標按下
QTest::mouseRelease()鼠標釋放
下面是一個實例
當出現錯誤時,程序運行截圖如下:
當沒有錯誤時,程序運行截圖如下:
源碼如下:
test3.pro
QT += widgets testlib
SOURCES = testgui.cpp
INSTALLS += test3
testgui.cpp
#include <QtWidgets>
#include <QtTest>
class TestGui: public QObject
{
Q_OBJECT
private slots:
void testGui();
};
void TestGui::testGui()
{
QLineEdit lineEdit;
QTest::keyClicks(&lineEdit, "hello world");
QCOMPARE(lineEdit.text(), QString("hello world"));
}
QTEST_MAIN(TestGui)
#include "testgui.moc"
這裏個人感覺這篇博文非常重要,因爲Qt框架提供了很多讓人方便的地方。可能很多朋友覺得這些是雞肋,因爲的確可以用其他的測試方式去做。但是我個人覺得,對一個框架的熟悉或精通程度,不在於你以前敲了多少代碼,這個框架和你以前用過的xx框架多麼相似,而在於,這個框架,能不能寫出花出來。個人感覺這個Qt單元測試,就是一朵花。