优点: 
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等)的更多相关文章

  1. Qt单元测试(QTestLib)

    版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:Qt单元测试(QTestLib)     本文地址:http://techieliang.co ...

  2. Qt 单元测试

      使用Qtcreator 自带的单元测试工具框架QTestlib进行测试. 一.创建一个单元测试程序 new project->other project ->Qt unit test ...

  3. 主流的单元测试工具之-JAVA新特性-Annotation 写作者:组长 梁伟龙

    1:什么是Annotation?Annotation,即“@xxx”(如@Before,@After,@Test(timeout=xxx),@ignore),这个单词一般是翻译成元数据,是JAVA的一 ...

  4. codeblocks+Mingw 下配置开源c++单元测试工具 google test

    google test 是google的c++开源单元测试工具,chrome的开发团队就是使用它. Code::Blocks 12.11(MinGW 4.7.1) (Windows版)Google T ...

  5. PHP单元测试工具PHPUnit初体验

    今天接到了个任务,需要对数字进行计算,因为涉及到整数,小数,和科学计数法等很多条件,所以人工测试非常麻烦,于是想到了PHP的单元测试工具PHPUnit,所以写个文档备查. 看了PHPUnit的文档之后 ...

  6. 单元测试工具之Xunit

    在.NET开发中的单元测试工具之——xUnit.Net  原始出处 http://zhoufoxcn.blog.51cto.com/792419/1172320 在上一篇<在.NET开发中的单元 ...

  7. 第二章 Qt常用工具的介绍

    第二章 Qt常用工具的介绍 (1)No.1 qmake 相信编写过Makefile的开发人员,随着工程中源码的级数递增和以类型.功能.模块组织源码的子目录的增多,都不愿意重复机械地手工编写这个工程管理 ...

  8. Java单元测试工具:JUnit4(一)(二)(三)(四)

    Java单元测试工具:JUnit4(一)--概述及简单例子 Java单元测试工具:JUnit4(二)--JUnit使用详解 Java单元测试工具:JUnit4(三)--JUnit详解之运行流程及常用注 ...

  9. 单元测试工具 SmokeTest

    .NET 程序集单元测试工具 SmokeTest Smoke Test(冒烟测试),也称Regression Test(回归测试),是对软件的安装和基本功能的测试.一般地我们使用脚本来实现Smoke ...

随机推荐

  1. 笔记三:JS正则表达式

    正则表达式(英语:Regular Expression,在代码中常简写为regex.regexp或RE)使用单个字符串来描述.匹配一系列符合某个句法规则的字符串搜索模式.说白了正则表达式就是处理字符串 ...

  2. 谈谈vector容器的三种遍历方法

    说明:本文仅供学习交流.转载请标明出处.欢迎转载!          vector容器是最简单的顺序容器,其用法相似于数组.实际上vector的底层实现就是採用动态数组.在编敲代码的过程中.经常会变量 ...

  3. c编程:僵尸吃大脑

    第一行输入一个正整数n 以下每一行输入僵尸已经吃了的大脑数量a,和需要生存必需要吃的大脑数量b.总共n行. 例子输入 3 4 5 3 3 4 3 例子输出 NO BRAINS MMM BRAINS M ...

  4. 很吊炸天的Xcode插件,你想要的这都有

    整理自BigPolarBear的博客 .杂技杂记  以及CC此前整理. 古人云"工欲善其事必先利其器",打造一个强大的开发环境.是马上提升自身战斗力的绝佳途径!下面是搜集的一些有力 ...

  5. Cscope how to support java and c++

    Cscope 首先在文件夹下建立cscope索引文件 find -name '*.c' > cscope.file cscope -Rbkq 这个命令会生成三个文件:cscope.out, cs ...

  6. Des 加密cbc模式 padding

    using System; using System.Collections.Generic; using System.Linq; using System.Net.Http; using Syst ...

  7. python 的spyder用法

    ctrl+tab可以进行跳转 https://blog.csdn.net/luckygirl0809/article/details/79929491

  8. spyder结束死循环的方法

    Ctrl+C 用这个有时候也是不行的,因为如果一直有图片在闪,那么就是直接关了吧 之前记错了一直用ctrl+x不行 导致崩溃,不能重启spyder 但是没有敢再试

  9. Day1:用户交互与格式化输出

    一.用户交互 1.input()方法 #!/usr/bin/env python # -*- coding:utf-8 -*- # Author:Hiuhung Wan username = inpu ...

  10. Java Callable Future Example(java 关于Callable,Future的例子)

    Home » Java » Java Callable Future Example Java Callable Future Example April 3, 2018 by Pankaj 25 C ...