如果要测试多个数据,可以使用下面的代码

QCOMPARE(QString("hello").toUpper(), QString("HELLO"));
QCOMPARE(QString("Hello").toUpper(), QString("HELLO"));
QCOMPARE(QString("HellO").toUpper(), QString("HELLO"));
QCOMPARE(QString("HELLO").toUpper(), QString("HELLO"));

但是这个可读性相对来说不高,可以增加一个私有的槽函数添加数据:

class TestQString: public QObject
{Q_OBJECTprivate slots:void toUpper_data();void toUpper();
};

这里的数据要和测试的一样,只要在相似的后面添加_data()。

如下:

void TestQString::toUpper_data()
{QTest::addColumn<QString>("string");QTest::addColumn<QString>("result");QTest::newRow("all lower") << "hello" << "HELLO";QTest::newRow("mixed")     << "Hello" << "HELLO";QTest::newRow("all upper") << "HELLO" << "HELLO";
}

这里QTest::addColumn和QTest::newRow逻辑上是这样的:

程序运行截图如下:

test2.pro

QT += widgets testlib
SOURCES = testqstring.cpp
INSTALLS += target

testqstring.cpp

#include <QtTest>class TestQString: public QObject{Q_OBJECTprivate slots:void toUpper_data();void toUpper();
};void TestQString::toUpper_data(){QTest::addColumn<QString>("string");QTest::addColumn<QString>("result");QTest::newRow("all lower") << "hello" << "HELLO";QTest::newRow("mixed") << "Hello" << "HELLO";QTest::newRow("all upper") << "HELLO" << "HELLO";
}void TestQString::toUpper(){QFETCH(QString, string);QFETCH(QString, result);QCOMPARE(string.toUpper(), result);
}QTEST_MAIN(TestQString)
#include "testqstring.moc"

Qt文档阅读笔记-数据驱动测试相关推荐

  1. Qt文档阅读笔记-共享库的创建与调用

    使用共享库的符号 这个符号可以作用在变量.类.函数中,并且这些都可以被调用端使用. 在编译共享库中,需要使用export符号.在使用端调用的时候使用import符号. 这里是本人从文档中记录的笔记,大 ...

  2. Qt文档阅读笔记-加载HeightMap(高度图)构造3D地形图

    Qt文档阅读笔记-加载HeightMap(高度图)构造3D地形图 QHeightMapSurfaceDataProxy:是Q3DSurface的一个基本代理类. 他是专门加载高度图. 高度图是没有X, ...

  3. Qt文档阅读笔记-Rotations Example相关

    Rotations Example文档阅读笔记 使用这种方式,对y轴和z轴进行旋转. QQuaternion yRotation = QQuaternion::fromAxisAndAngle(0.0 ...

  4. Qt文档阅读笔记-对Style Plugin Example实例的解析

    目录 前言 Style Plugin Example SimpleStylePlugin Class 定义 SimpleStylePlugin Class 实现 main()函数 The Simple ...

  5. Qt文档阅读笔记-QWebEngineView及QML WebEngineView

    这里主要是最近有给Java Web项目及Qt项目需要混合,自己搞的QtWebEngine没有问题,而用了项目里面的,就有问题,在此阅读下官方资料,看看能不能解决这样莫名其妙的问题,在此记录下本次的阅读 ...

  6. Qt文档阅读笔记-moc工具使用及其理论(moc工具如何添加到makefile中)

    moc(Meta-Object Compiler):用于处理Qt中关于C++的扩展. moc工具读取C++头文件,看看这个头文件里面的类是不是包含Q_OBJECT宏,它会将这个头文件,转换为带有met ...

  7. Qt文档阅读笔记-Fortune Client Example实例解析

    目录 官方解析 实例代码 博主增加解析 官方解析 Fortune Client Example 以使用QTcpSocket为例子,服务端可以配合Fortune Server或Threaded Fort ...

  8. Qt文档阅读笔记-QSet官方解析及实例

    目录 官方解析 博主栗子 官方解析 QSet类是一个模板类,他是一个哈希表集合. QSet<T>是Qt的一个普通容器类.QSet存储的值是不指明顺序的,QSet对这些值提供了快速检索的功能 ...

  9. Qt文档阅读笔记-QML Canvas的官方解析及实例

    目录 官方解析 博主例子 官方解析 Canvas可以用于画直线或曲线,简单或复杂的形状,图形,图片,并且他能加文字,颜色,阴影,和颜色梯度,和其他的装饰,可以进行低像素操作.Canvas可以保存成图像 ...

最新文章

  1. 【Python】二维数组,使用 * 号来进行重复,导致结果不符合预期
  2. 51单片机独立键盘和矩阵键盘
  3. java spark wordcount_提交任务到spark(以wordcount为例)
  4. ORACLE 12C 插入数据遇到 Error getting generated key or setting result to parameter object错误
  5. 帆软与中国环境科学院合作,共同推进数字化管理建设
  6. 财务管理属于计算机网络,浅谈如何应用计算机网络进行财务管理
  7. bat中的start
  8. window ngnix php配置文件,Window下PHP和Nginx的配置
  9. 两种方法分析每月工作日计算程序
  10. Qt:使用元对象编辑器Moc
  11. 2012新年寄语——感谢有您
  12. 6、GitHub 操作
  13. 上大学之前,一定要明白这10大潜规则,你会少走很多人生弯路
  14. 人工智能产品经理读书笔记7
  15. 社区共享式的机器学习——Medium翻译
  16. 学完新概念英语4册,需要几年?
  17. asp数组中REDIM的用法(动态数组)
  18. 直播源码网站,点击分享按钮,分享到各个渠道功能的实现
  19. [附源码]计算机毕业设计JAVA药品销售管理系统
  20. TX- index contention的解决方法

热门文章

  1. 关于验证码的DEMO
  2. Linux shell tips and tricks
  3. Win7 格式化U盘
  4. SQL Server 2000/2005 数据库分页
  5. javascript技巧参考
  6. 老师傅告诉你,学校学的编程知识,和工作所需要的差别有多大!
  7. 轻松实现 CTreeCtrl 的全选与反选
  8. 现在的编程语言越来越多,为什么 C 和 C++ 还没有被现在的时代淘汰呢?
  9. 工作3年和工作7年的程序员到底差在哪里?
  10. 【vue2.0进阶】vue-router10分钟快速入门