QTest测试框架,多数据测试

简介: QTest测试框架,多数据测试

在上一节中,小豆君跟大家分享了QTest的基本用法,但是有时候编写测试用例时,需要设定多个用例来测试一个功能点。

例如,测试商品的利润,可能会用到下面的多个测试用例:


Commodity c1("beer_1", "啤酒", 4, 5);QVERIFY(c1.profit() == 1);
Commodity c2("beer_1", "啤酒", 4, 6.5);QVERIFY(c2.profit() == 1.5);
Commodity c3("beer_1", "啤酒", 4, 2);QVERIFY(c3.profit() == -2);


那么,这就需要编写三个测试用例,但是我更希望对于一个功能点只编写一个测试用例,这样就不会被这些重复的代码弄得乱七八糟了。而强大的QTest恰好为我们提供了这样的功能。


1 编写多数据测试集


在上一节的CommodityTest类中新增一个槽函数case5_profit_data():



该函数必须以case5_profit开头,_data结尾。


case5_profit_data()函数实现如下:



addColumn函数指定该数据列名称为"commodity",类型为Commodity。

同理,再指定一个结果列result,类型为double


newRow接口新增一个测试行,该行的两列为刚刚添加的两列,注意列类型要保持一致


其实,以上的数据流可以用一个数据表结构来表示:



这下就可以弄懂了吧。


接下来,重写case5_profit测试接口




QFETCH查找名称为commodity的列,并将commodity的类型设为Commodity,然后调用它的profit接口,与result列的值进行比较。


接下来,我们运行一下测试程序:



测试结果很顺利,全部通过!


2 使用命令行指定测试数据集

在命令行中输入如下内容:case5_profit:int case5_profit:double

运行结果如下,这个结果表明只执行了case5_profit中的int数据行和double数据行:




其中,case5_profit:int表示调用测试函数中的case5_profit的名称为int的数据行

同理,case5_profit:double表示调用测试函数中的case5_profit的名称为double的数据行。


好的,关于Qt测试框架第二节的内容就分享到这里,希望你能有所收获,下期小豆君将分享QTest测试GUI的方法,敬请期待吧。


更多分享请关注微信公众号:小豆君Qt分享,只要关注,便可加入C++\Qt交流群,一起学习,更可获得所有文章源码。

相关文章
|
1月前
|
人工智能 搜索推荐 数据管理
探索软件测试中的自动化测试框架选择与优化策略
本文深入探讨了在现代软件开发流程中,如何根据项目特性、团队技能和长期维护需求,精准选择合适的自动化测试框架。
98 8
|
7天前
|
分布式计算 Shell MaxCompute
odps测试表及大量数据构建测试
odps测试表及大量数据构建测试
|
7天前
|
存储 测试技术 API
pytest接口自动化测试框架搭建
通过上述步骤,我们成功搭建了一个基于 `pytest`的接口自动化测试框架。这个框架具备良好的扩展性和可维护性,能够高效地管理和执行API测试。通过封装HTTP请求逻辑、使用 `conftest.py`定义共享资源和前置条件,并利用 `pytest.ini`进行配置管理,可以大幅提高测试的自动化程度和执行效率。希望本文能为您的测试工作提供实用的指导和帮助。
50 15
|
16天前
|
数据采集 人工智能 自然语言处理
Midscene.js:AI 驱动的 UI 自动化测试框架,支持自然语言交互,生成可视化报告
Midscene.js 是一款基于 AI 技术的 UI 自动化测试框架,通过自然语言交互简化测试流程,支持动作执行、数据查询和页面断言,提供可视化报告,适用于多种应用场景。
149 1
Midscene.js:AI 驱动的 UI 自动化测试框架,支持自然语言交互,生成可视化报告
|
28天前
|
Linux Shell 网络安全
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
本指南介绍如何利用 HTA 文件和 Metasploit 框架进行渗透测试。通过创建反向 shell、生成 HTA 文件、设置 HTTP 服务器和发送文件,最终实现对目标系统的控制。适用于教育目的,需合法授权。
61 9
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
|
13天前
|
开发框架 .NET Java
C#集合数据去重的5种方式及其性能对比测试分析
C#集合数据去重的5种方式及其性能对比测试分析
31 11
|
1月前
|
安全 Ubuntu Linux
Metasploit Pro 4.22.6-2024111901 (Linux, Windows) - 专业渗透测试框架
Metasploit Pro 4.22.6-2024111901 (Linux, Windows) - 专业渗透测试框架
46 9
Metasploit Pro 4.22.6-2024111901 (Linux, Windows) - 专业渗透测试框架
|
15天前
|
开发框架 .NET Java
C#集合数据去重的5种方式及其性能对比测试分析
C#集合数据去重的5种方式及其性能对比测试分析
41 10
|
1月前
|
Java 测试技术 API
探索软件测试中的自动化测试框架
本文深入探讨了自动化测试在软件开发中的重要性,并详细介绍了几种流行的自动化测试框架。通过比较它们的优缺点和适用场景,旨在为读者提供选择合适自动化测试工具的参考依据。
|
1月前
|
数据管理 jenkins 测试技术
自动化测试框架的设计与实现
在软件开发周期中,测试是确保产品质量的关键步骤。本文通过介绍自动化测试框架的设计原则、组件构成以及实现方法,旨在指导读者构建高效、可靠的自动化测试系统。文章不仅探讨了自动化测试的必要性和优势,还详细描述了框架搭建的具体步骤,包括工具选择、脚本开发、执行策略及结果分析等。此外,文章还强调了持续集成环境下自动化测试的重要性,并提供了实际案例分析,以帮助读者更好地理解和应用自动化测试框架。