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 ...
随机推荐
- Android 利用代码在屏幕中间位置显示ProgressDialog和ProgressBar
package cc.testprogressdialog; import android.os.Bundle; import android.view.Gravity; import android ...
- GO语言学习(二十)Go 语言递归函数
Go 语言递归函数 递归,就是在运行的过程中调用自己. 语法格式如下: func recursion() { recursion() /* 函数调用自身 */ } func main() { recu ...
- 常用的织梦dedecms安全设置集合整理
织梦系统用户很多,被发现的漏洞也就相对很多,所以网站安全需要做好,很多所谓的“黑客”都是用工具来扫描入侵,厉害点的人是不屑来黑我们的小网站的,所以在我们不是专业维护人员情况下,做好一般的安全防护就可以 ...
- POJ 3468 A Simple Problem with Integers 线段树区间修改
http://poj.org/problem?id=3468 题目大意: 给你N个数还有Q组操作(1 ≤ N,Q ≤ 100000) 操作分为两种,Q A B 表示输出[A,B]的和 C A B ...
- UML学习总结(2)——StartUML 各种类图的例子
1.UML分为: 1)静态建模:系统基础和系统固定框架结构,这些图形往往是"静态"的. 类图(Class Diagram):常用来分析业务概念 用例图(Use Case Diagr ...
- 动态规划求解序列问题(LIS、JLIS)
1. 最长递增子序列 不要求位置连续:要求大小严格递增(strictly increasing) 穷举法解题 首先以每个数字为单位分割寻找最长递增子序列: int lis(const vector&l ...
- Springboot+shiro配置笔记+错误小结(转)
软件152 尹以操 springboot不像springmvc,它没有xml配置文件,那该如何配置shiro呢,其实也不难,用java代码+注解来解决这个问题.仅以此篇记录我对shiro的学习,如有对 ...
- [Angular2 Animation] Control Undefined Angular 2 States with void State
Each trigger starts with an “undefined” state or a “void” state which doesn’t match any of your curr ...
- jQuery 中 is() 函数常见使用方法
依据选择器.DOM元素或 jQuery 对象来检測匹配元素集合.假设当中至少有一个元素符合这个给定的表达式就返回true. 假设没有元素符合,或者表达式无效.都返回'false'. '''注意:''' ...
- php框架排名(Laravel一直第一)
php框架排名(Laravel一直第一) 一.总结 1.Laravel,后面就用这个框架(要用好这个框架,英语得6啊) 2.YII框架和tp框架一样,也是一个国产框架 二.2017世界PHP框架排名T ...