这里先提下基本概念
官方的模拟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单元测试,就是一朵花。