Qt5开发及实例V2.0-第十五章-Qt单元测试框架

Qt5开发及实例V2.0-第十五章-Qt单元测试框架

  • [第15章 Qt 5单元测试框架](#第15章 Qt 5单元测试框架)
    • [15.1 QTestLib框架](#15.1 QTestLib框架)
    • [15.2 简单的Qt单元测试](#15.2 简单的Qt单元测试)
    • [15.3 数据驱动测试](#15.3 数据驱动测试)
    • [15.4 简单性能测试](#15.4 简单性能测试)
  • 本章相关例程源码下载
    • [1.Qt5开发及实例_CH1501.rar 下载](#1.Qt5开发及实例_CH1501.rar 下载)
    • [2.Qt5开发及实例_CH1502.rar 下载](#2.Qt5开发及实例_CH1502.rar 下载)
    • [3.Qt5开发及实例_CH1503.rar 下载](#3.Qt5开发及实例_CH1503.rar 下载)
    • [4.Qt5开发及实例_CH1505.rar 下载](#4.Qt5开发及实例_CH1505.rar 下载)

第15章 Qt 5单元测试框架

15.1 QTestLib框架

Trolltech公司提供的QTestLib框架,是一种针对基于Qt编写的程序或库的单元测试工具。QTestLib提供了单元测试框架的基本功能,并提供了针对GUI测试的扩展功能。QTestLib提供了许多特性,见表15.1。

15.2 简单的Qt单元测试

【例】(简单)(CH1501)首先实现计算圆面积的类,然后编写代码检查该类是否完成了相应的功能。

(1)建立单元测试框架,步骤如下。

选择"文件"→"新建文件或项目"菜单项,出现如图15.1所示的对话框,选择"其他项目"→"Qt单元测试"菜单项,单击"Choose..."按钮继续。

为测试项目命名,"名称"为"AreaTest",连续单击"下一步"按钮,直至出现如图15.2所示的对话框,选择项目需要包含的模块。

单击"下一步"按钮,在如图15.3所示的对话框中设置将要创建的测试类的基本信息。

(2)计算圆面积类的具体实现步骤如下。

在项目名上单击鼠标右键,选择"添加新文件...",在如图15.4所示的"新建文件"对话框中,选择新建"C++ Header File",单击"Choose..."按钮,在弹出的对话框中填写文件的"名称"为"area"。

头文件"area.h"的具体代码如下:

c 复制代码
#include <QObject>
class Area:public QObject
{
    	Q_OBJECT
public:
    Area(){}
    ~Area(){}
    Area(const Area &area)
    {
         m_r = area.m_r;
    }
    Area(int r)
    {
         m_r=r;
    }
    double CountArea()
    {
        return  3.14*m_r*m_r;
    }
private:
    double m_r;
};

(3)测试代码所在的源文件"tst_testarea.cpp"的具体内容如下:

c 复制代码
#include <QString>
#include <QtTest>
#include "area.h"
class TestArea : public QObject
{
    Q_OBJECT
public:
    TestArea();
private Q_SLOTS:
    void toAreaTest();					//(a)
};
TestArea::TestArea()
{
}
void TestArea::toAreaTest()
{
    Area area(1);
    QVERIFY(qAbs(area.CountArea()-3.14)<0.0000001);	//(b)
    QVERIFY2(true, "Failure");
}
QTEST_APPLESS_MAIN(TestArea)			//(c)
#include "tst_testarea.moc"

测试函数运行结果如图15.5所示。

15.3 数据驱动测试

【例】(简单)(CH1502)测试字符串转换为全小写字符的功能。

(1)建立单元测试框架(操作方法同前),具体设置如下。

项目名称:TestQString。

测试类名:TestQString。

测试槽:testToLower。

生成源文件:tst_testqstring.cpp。

(2)源文件"tst_testqstring.cpp"的具体代码。

(3)测试结果如图15.6所示。

【例】(简单)(CH1503)测试计算圆面积的功能。

(1)建立单元测试框架(操作方法同前),具体设置如下。

项目名称:AreaTest2。

测试类名:TestArea。

测试槽:toArea。

生成源文件:tst_testarea.cpp。

(2)新建C++头文件"area.h",其具体代码。

(3)在源文件"tst_testarea.cpp"中完成测试工作,其具体实现代码。

(4)测试结果如图15.7所示。

15.4 简单性能测试

【例】(简单)(CH1504)编写性能测试代码。

(1)建立单元测试框架(操作方法同前),具体设置如下。

项目名称:TestQString2。

测试类名:TestQString2。

测试槽:testBenchmark。

生成源文件:tst_testqstring2.cpp。

(2)源文件"tst_testqstring2.cpp"中具体代码。

(3)测试结果如图15.8所示。



本章相关例程源码下载

1.Qt5开发及实例_CH1501.rar 下载

Qt5开发及实例_CH1501.rar

2.Qt5开发及实例_CH1502.rar 下载

Qt5开发及实例_CH1502.rar

3.Qt5开发及实例_CH1503.rar 下载

Qt5开发及实例_CH1503.rar

4.Qt5开发及实例_CH1505.rar 下载

Qt5开发及实例_CH1505.rar

相关推荐
YYRAN_ZZU9 分钟前
Petalinux新建自动脚本启动
linux
charlie11451419125 分钟前
嵌入式Linux驱动开发pinctrl篇(1)——从寄存器到子系统:驱动演进之路
linux·运维·驱动开发
Agent手记32 分钟前
异常考勤智能预警与处理与流程优化方案 | 基于企业级Agent的超自动化实战教程
运维·人工智能·ai·自动化
于小猿Sup44 分钟前
VMware在Ubuntu22.04驱动Livox Mid360s
linux·c++·嵌入式硬件·自动驾驶
cen__y1 小时前
Linux12(Git01)
linux·运维·服务器·c语言·开发语言·git
AI人工智能+电脑小能手1 小时前
【大白话说Java面试题 第65题】【JVM篇】第25题:谈谈对 OOM 的认识
java·开发语言·jvm
社交怪人1 小时前
【算平均分】信息学奥赛一本通C语言解法(题号2071)
c语言·开发语言
郭涤生2 小时前
不同主机之间网络通信-以太网连接复习
开发语言·rk3588
山居秋暝LS2 小时前
【无标题】RTX00安装paddle OCR,win11不能装最新的,也不能用GPU
开发语言·r语言
卢锡荣2 小时前
单芯通吃,盲插标杆 —— 乐得瑞 LDR6020,Type‑C 全场景互联 “智慧芯”
c语言·开发语言·计算机外设