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交流群,一起学习,更可获得所有文章源码。

相关文章
|
5月前
|
安全 数据管理 测试技术
告别蛮力:让测试数据生成变得智能而高效
告别蛮力:让测试数据生成变得智能而高效
562 120
|
7月前
|
Web App开发 人工智能 JavaScript
主流自动化测试框架的技术解析与实战指南
本内容深入解析主流测试框架Playwright、Selenium与Cypress的核心架构与适用场景,对比其在SPA测试、CI/CD、跨浏览器兼容性等方面的表现。同时探讨Playwright在AI增强测试、录制回放、企业部署等领域的实战优势,以及Selenium在老旧系统和IE兼容性中的坚守场景。结合六大典型场景,提供技术选型决策指南,并展望AI赋能下的未来测试体系。
|
5月前
|
SQL 安全 Linux
Metasploit Pro 4.22.8-20251014 (Linux, Windows) - 专业渗透测试框架
Metasploit Pro 4.22.8-20251014 (Linux, Windows) - 专业渗透测试框架
294 1
Metasploit Pro 4.22.8-20251014 (Linux, Windows) - 专业渗透测试框架
|
5月前
|
Linux 网络安全 iOS开发
Metasploit Framework 6.4.95 (macOS, Linux, Windows) - 开源渗透测试框架
Metasploit Framework 6.4.95 (macOS, Linux, Windows) - 开源渗透测试框架
506 1
Metasploit Framework 6.4.95 (macOS, Linux, Windows) - 开源渗透测试框架
|
6月前
|
安全 Linux 网络安全
Metasploit Pro 4.22.8-2025091701 (Linux, Windows) - 专业渗透测试框架
Metasploit Pro 4.22.8-2025091701 (Linux, Windows) - 专业渗透测试框架
427 2
Metasploit Pro 4.22.8-2025091701 (Linux, Windows) - 专业渗透测试框架
|
6月前
|
Linux 网络安全 iOS开发
Metasploit Framework 6.4.90 (macOS, Linux, Windows) - 开源渗透测试框架
Metasploit Framework 6.4.90 (macOS, Linux, Windows) - 开源渗透测试框架
481 1
Metasploit Framework 6.4.90 (macOS, Linux, Windows) - 开源渗透测试框架
|
6月前
|
安全 Linux 网络安全
Metasploit Framework 6.4.88 (macOS, Linux, Windows) - 开源渗透测试框架
Metasploit Framework 6.4.88 (macOS, Linux, Windows) - 开源渗透测试框架
620 0
|
6月前
|
存储 测试技术 API
数据驱动开发软件测试脚本
今天刚提交了我的新作《带着ChatGPT玩转软件开发》给出版社,在写作期间跟着ChatGPT学到许多新知识。下面分享数据驱动开发软件测试脚本。
244 0
|
6月前
|
缓存 安全 Linux
Metasploit Pro 4.22.8-2025082101 (Linux, Windows) - 专业渗透测试框架
Metasploit Pro 4.22.8-2025082101 (Linux, Windows) - 专业渗透测试框架
260 0
|
7月前
|
SQL 安全 Linux
Metasploit Pro 4.22.8-2025073001 (Linux, Windows) - 专业渗透测试框架
Metasploit Pro 4.22.8-2025073001 (Linux, Windows) - 专业渗透测试框架
214 0