当前位置: 代码迷 >> 综合 >> Qt在VS中使用单元测试
  详细解决方案

Qt在VS中使用单元测试

热度:75   发布时间:2024-02-08 19:33:13.0

在工程的解决方案中,新建一个单元测试项目AutoTest,Qt控制台项目,勾选Core,Test模块

创建CTest类

#include <QObject>
#include <QtTest>class CTest : public QObject
{Q_OBJECTpublic:CTest();~CTest();private slots://在第一个用例被调用之前,该函数执行,做一些初始化工作void initTestCase();//最后一个用例执行之后,该函数执行,做一些收尾/反初始化工作void cleanupTestCase();//每一个用例执行之前,该函数会执行void init();//每一个用例执行之后,该函数会执行void cleanup();//测试用例1void test_case1();};#include "CTest.h"
#include <CFileManager.h>CTest::CTest()
{}CTest::~CTest()
{}void CTest::initTestCase()
{}void CTest::cleanupTestCase()
{
}void CTest::init()
{
}void CTest::cleanup()
{
}void CTest::test_case1()
{CFileManager fileManager;//去后缀名QVERIFY(fileManager.getSuffixName("RemotePlayback.sln") == ".sln");
}#include <QtCore/QCoreApplication>
#include "CTest.h"
#include <QDebug>int main(int argc, char *argv[])
{QCoreApplication app(argc, argv); app.setAttribute(Qt::AA_Use96Dpi, true); CTest test;QTEST_SET_MAIN_SOURCE_PATHqDebug() << QTest::qExec(&test, argc, argv);   //执行test类中的测试用例  全部成功返回0  有失败返回非0return app.exec();
}

 

CFileManager为项目中的类

AutoTest的项目属性中的附加包含目录新增 ../QthreadDemo               QThreadDemo为自己的项目目录

CFileManager.h和CFileManager.cpp 通过添加现有项,添加到AutoTest项目中

 

GUI测试

下面提供鼠标操作相关的枚举类型:

Constant Value Description
QTest::MousePress 0 A mouse button is pressed.
QTest::MouseRelease 1 A mouse button is released.
QTest::MouseClick 2 A mouse button is clicked (pressed and released).
QTest::MouseDClick 3 A mouse button is double clicked (pressed and released twice).
QTest::MouseMove 4 The mouse pointer has moved.
void mouseClick(QWidget *widget, Qt::MouseButton button, Qt::KeyboardModifiers modifier = Qt::KeyboardModifiers(), QPoint pos = QPoint(), int delay = -1)
void mouseClick(QWindow *window, Qt::MouseButton button, Qt::KeyboardModifiers stateKey = Qt::KeyboardModifiers(), QPoint pos = QPoint(), int delay = -1)
void mouseDClick(QWidget *widget, Qt::MouseButton button, Qt::KeyboardModifiers modifier = Qt::KeyboardModifiers(), QPoint pos = QPoint(), int delay = -1)
void mouseDClick(QWindow *window, Qt::MouseButton button, Qt::KeyboardModifiers stateKey = Qt::KeyboardModifiers(), QPoint pos = QPoint(), int delay = -1)
void mouseMove(QWidget *widget, QPoint pos = QPoint(), int delay = -1)
void mouseMove(QWindow *window, QPoint pos = QPoint(), int delay = -1)
void mousePress(QWidget *widget, Qt::MouseButton button, Qt::KeyboardModifiers modifier = Qt::KeyboardModifiers(), QPoint pos = QPoint(), int delay = -1)
void mousePress(QWindow *window, Qt::MouseButton button, Qt::KeyboardModifiers stateKey = Qt::KeyboardModifiers(), QPoint pos = QPoint(), int delay = -1)
void mouseRelease(QWidget *widget, Qt::MouseButton button, Qt::KeyboardModifiers modifier = Qt::KeyboardModifiers(), QPoint pos = QPoint(), int delay = -1)
void mouseRelease(QWindow *window, Qt::MouseButton button, Qt::KeyboardModifiers stateKey = Qt::KeyboardModifiers(), QPoint pos = QPoint(), int delay = -1)