Qt单元测试工具 QTestlib(QVERIFY, QFETCH, QCOMPARE等)
2024-08-31 19:29:14
优点:
QTestLib提供了单元测试框架的基本功能,并提供了针对GUI测试的扩展功能。
特性 | 详细描述 |
轻量级 | QTestlib 只包含 6000行代码和 60个导出符号。 |
自包含 | 对于非GUI测 试,QTestlib只需要Qt核心库的几 个符号。 |
快速测试 | QTestlib不需要特殊的测试执行程序,不需要为测试而进行特殊的注册。 |
数据驱动测试 | 一个测试程序可以在不同的测试数据集上执行多次。 |
基本的GUI测 试 | QTestlib提供了模拟鼠标和键盘事件的功能。 |
IDE友好 | QTestlib的输出信息可以被Visual Studio和KDevelop解析。 |
线程安全 | 错误报告是线程安全的、原子性的。 |
类型安全 | 对模板进行了扩展使用,防止由隐式类型转换引起的错误。 |
易扩展 | 用户自定义类型可以容易地加入到测试数据和测试输出中。 |
使用前提:
1,继承QObject
2,私有槽(每个槽函数都是一个测试函数,将被QTest::qExec()自动调用)
使用的相关宏:
QVERIFY(condition)
//condition为真,则程序继续运行,否则测试失败,程序终止运行
QVERIFY2(statement, description)
//statement为佳,输出description
- 1
- 2
- 3
- 4
initTestCase()
//在第一个测试函数运行前调用
cleanupTestCase()
//在终于第一个测试函数运行后调用
init()
//在每个测试函数运行前被调用
cleanup()
//在每个测试函数运行后调用
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
初始化测试数据一般先有测试函数_data()进行初始化数据
> void QTest::addColumn(const char *name, T *dummy = 0)
> QTestData &QTest::newRow(const char *dataTag)
//建立要测试的数据列
QTest::addColumn<QString>("aString");
QTest::addColumn<int>("expected");
//添加数据行
QTest::newRow("positive value") << "42" << 42;
QTest::newRow("negative value") << "-42" << -42;
QTest::newRow("zero") << "0" << 0;
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
而后在测试函数(槽)中使用
//测试数据获取
> QFETCH(type, name)
QFETCH(QString, aString);
QFETCH(int, expected);
- 1
- 2
- 3
- 4
- 5
- 6
//测试数据比较
> QCOMPARE(actual, expected);
//actual, expected值相等,就继续执行
- 1
- 2
- 3
- 4
ps:
其他平台工具:
http://blog.csdn.net/libing403/article/details/72909348
http://blog.csdn.net/uriel_chiang/article/details/77871149
最新文章
- 如何把IP转换成经纬度(Java版)
- Java中的Bigdecimal类型运算
- Maven学习(五)-- 聚合与继承
- MyBatis魔法堂:各数据库的批量Update操作
- Unity C#和OC互相调用
- svn log 不显示日志的问题
- unity 引用 移动mm 支付sdk
- Docker - 配置国内加速器加速镜像下载。
- Google地图,Baidu地图数据供应商
- JavaScript null 和 undefined
- 02-C#(基础)基本的定义和说明
- Appium python自动化测试系列之页面滑动原理讲解(十)
- 如何使用mysqldump备份数据库
- 2013-9 OWASP论坛
- Python之保存和读取字典
- 用PIP 安装或升级python遇到错误提示
- 大数据-08-Sqoop入门
- Ubunt16.04下安装PHP7+Nginx+MySQL
- C#汉字转拼音,可识别多音字,带声调,提供正向、逆向、双向分词算法的小程序
- mongo数据集合属性中存在点号(.)
热门文章
- node.js服务器核心http和文件读写
- 【例题 7-4 UVA - 524】Prime Ring Problem
- VS2012载入DLL编译出现试图载入格式不对的程序; 以及执行出现Mixed mode assembly is built against version &;#39;v2.0.50727&;#39; of the
- Android原生生成JSON与解析JSON
- 自定义npm包——typeScript版本
- 详解javascript: void(0);
- 通过WPF中UserControl内的按钮点击关闭父窗体
- api接口安全以及https
- JSP中多条件判断
- js中json法创建对象(json里面的:相当于js里面的=)