Qt5开发及实例V2.0-第十五章-Qt单元测试框架
- 第15章 Qt 5单元测试框架
- 15.1 QTestLib框架
- 15.2 简单的Qt单元测试
- 15.3 数据驱动测试
- 15.4 简单性能测试
- 本章相关例程源码下载
- 1.Qt5开发及实例_CH1501.rar 下载
- 2.Qt5开发及实例_CH1502.rar 下载
- 3.Qt5开发及实例_CH1503.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”的具体代码如下:
#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”的具体内容如下:
#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