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

相关推荐
Thomas_YXQ16 分钟前
Unity3D Overdraw性能优化详解
开发语言·人工智能·性能优化·unity3d
sz66cm18 分钟前
Linux基础 -- 用户态Generic Netlink库高性能接收与回调框架
linux
lanbing23 分钟前
PHP 与 面向对象编程(OOP)
开发语言·php·面向对象
yzx99101324 分钟前
Gensim 是一个专为 Python 设计的开源库
开发语言·python·开源
数巨小码人26 分钟前
Linux常见命令
大数据·linux·运维·服务器·elasticsearch·搜索引擎
家庭云计算专家30 分钟前
还没用过智能文档编辑器吗?带有AI插件的ONLYOFFICE介绍
服务器·人工智能·docker·容器·编辑器
麻雀无能为力41 分钟前
python自学笔记2 数据类型
开发语言·笔记·python
邪恶的贝利亚1 小时前
定时器设计
java·linux·前端
招风的黑耳1 小时前
Java集合框架详解与使用场景示例
java·开发语言
xrkhy1 小时前
java中XML的使用
xml·java·开发语言