优点: 
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

最新文章

  1. 如何把IP转换成经纬度(Java版)
  2. Java中的Bigdecimal类型运算
  3. Maven学习(五)-- 聚合与继承
  4. MyBatis魔法堂:各数据库的批量Update操作
  5. Unity C#和OC互相调用
  6. svn log 不显示日志的问题
  7. unity 引用 移动mm 支付sdk
  8. Docker - 配置国内加速器加速镜像下载。
  9. Google地图,Baidu地图数据供应商
  10. JavaScript null 和 undefined
  11. 02-C#(基础)基本的定义和说明
  12. Appium python自动化测试系列之页面滑动原理讲解(十)
  13. 如何使用mysqldump备份数据库
  14. 2013-9 OWASP论坛
  15. Python之保存和读取字典
  16. 用PIP 安装或升级python遇到错误提示
  17. 大数据-08-Sqoop入门
  18. Ubunt16.04下安装PHP7+Nginx+MySQL
  19. C#汉字转拼音,可识别多音字,带声调,提供正向、逆向、双向分词算法的小程序
  20. mongo数据集合属性中存在点号(.)

热门文章

  1. node.js服务器核心http和文件读写
  2. 【例题 7-4 UVA - 524】Prime Ring Problem
  3. VS2012载入DLL编译出现试图载入格式不对的程序; 以及执行出现Mixed mode assembly is built against version &amp;#39;v2.0.50727&amp;#39; of the
  4. Android原生生成JSON与解析JSON
  5. 自定义npm包——typeScript版本
  6. 详解javascript: void(0);
  7. 通过WPF中UserControl内的按钮点击关闭父窗体
  8. api接口安全以及https
  9. JSP中多条件判断
  10. js中json法创建对象(json里面的:相当于js里面的=)