Qt单元测试工具 QTestlib(QVERIFY, QFETCH, QCOMPARE等)
优点:
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
Qt单元测试工具 QTestlib(QVERIFY, QFETCH, QCOMPARE等)的更多相关文章
- Qt单元测试(QTestLib)
版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:Qt单元测试(QTestLib) 本文地址:http://techieliang.co ...
- Qt 单元测试
使用Qtcreator 自带的单元测试工具框架QTestlib进行测试. 一.创建一个单元测试程序 new project->other project ->Qt unit test ...
- 主流的单元测试工具之-JAVA新特性-Annotation 写作者:组长 梁伟龙
1:什么是Annotation?Annotation,即“@xxx”(如@Before,@After,@Test(timeout=xxx),@ignore),这个单词一般是翻译成元数据,是JAVA的一 ...
- codeblocks+Mingw 下配置开源c++单元测试工具 google test
google test 是google的c++开源单元测试工具,chrome的开发团队就是使用它. Code::Blocks 12.11(MinGW 4.7.1) (Windows版)Google T ...
- PHP单元测试工具PHPUnit初体验
今天接到了个任务,需要对数字进行计算,因为涉及到整数,小数,和科学计数法等很多条件,所以人工测试非常麻烦,于是想到了PHP的单元测试工具PHPUnit,所以写个文档备查. 看了PHPUnit的文档之后 ...
- 单元测试工具之Xunit
在.NET开发中的单元测试工具之——xUnit.Net 原始出处 http://zhoufoxcn.blog.51cto.com/792419/1172320 在上一篇<在.NET开发中的单元 ...
- 第二章 Qt常用工具的介绍
第二章 Qt常用工具的介绍 (1)No.1 qmake 相信编写过Makefile的开发人员,随着工程中源码的级数递增和以类型.功能.模块组织源码的子目录的增多,都不愿意重复机械地手工编写这个工程管理 ...
- Java单元测试工具:JUnit4(一)(二)(三)(四)
Java单元测试工具:JUnit4(一)--概述及简单例子 Java单元测试工具:JUnit4(二)--JUnit使用详解 Java单元测试工具:JUnit4(三)--JUnit详解之运行流程及常用注 ...
- 单元测试工具 SmokeTest
.NET 程序集单元测试工具 SmokeTest Smoke Test(冒烟测试),也称Regression Test(回归测试),是对软件的安装和基本功能的测试.一般地我们使用脚本来实现Smoke ...
随机推荐
- 【例题 7-6 UVA - 140】Bandwidth
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 暴力做就好. O(8!*26^2) [代码] /* 1.Shoud it use long long ? 2.Have you ev ...
- WinXP局域网共享设置
关闭局域网共享 1.不允许SAM帐户和共享的匿名枚举(系统默认是允许的). 组策略-计算机配置-Windows 设置-安全设置-本地安全策略-安全选项-网络访问:不允许SAM帐户和共享的匿名枚举. 设 ...
- ZOJ 2723 Semi-Prime ||ZOJ 2060 Fibonacci Again 水水水!
两题水题: 1.如果一个数能被分解为两个素数的乘积,则称为Semi-Prime,给你一个数,让你判断是不是Semi-Prime数. 2.定义F(0) = 7, F(1) = 11, F(n) = F( ...
- (转)iptables常用规则:屏蔽IP地址、禁用ping、协议设置、NAT与转发、负载平衡、自定义链
转自:http://lesca.me/archives/iptables-examples.html 本文介绍25个常用的iptables用法.如果你对iptables还不甚了解,可以参考上一篇ipt ...
- Codeforces Round #234 (Div. 2):B. Inna and New Matrix of Candies
B. Inna and New Matrix of Candies time limit per test 1 second memory limit per test 256 megabytes i ...
- UVA 10917 Walk Through the Forest SPFA
uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem= ...
- SpringBoot错误信息总结(不定时更新)
1." java.lang.IllegalStateException: @Bean method ShiroConfig.cacheManager called as a bean ref ...
- addSubview 与 removeFromSuperview
//当前视图的父视图添加和本视图同级的视图 [self.view.superview addSubview:showview.view]; //从父视图移除当前视图 [self.view remove ...
- php对象和数组的相互转换(还是可以去找没有没php的高阶课程看看看)(要不别人分析一下重点要点,要不自己来,不然 效果真的不好)
php对象和数组的相互转换(还是可以去找没有没php的高阶课程看看看)(要不别人分析一下重点要点,要不自己来,不然 效果真的不好) 一.总结 都是自己实现的函数 算法: 1.先判断类型,gettype ...
- 结合Wireshark捕获分组深入理解TCP/IP协议栈
摘要: 本文剖析了浏览器输入URL到整个页面显示的整个过程,以百度首页为例,结合Wireshark俘获分组进行详细分析整个过程,从而更好地了解TCP/IP协议栈. 一.俘获分组 1.1 准 ...