qtcanpool 知 09:测试框架

前言

很久以前,作者写的代码都没有测试用例,最多就是写个 demo 验证一下,毕竟不是专业出身,也没经过大公司的洗礼。
后来,参与到一些项目才知道有专门的测试,而且开发也要测试(开发自测、白盒测试、单元测试)。有兴趣的读者可以去了解一下 TDD(测试驱动开发)方法论。

关于c/c++的测试,作者先后用到过 cpptest、gtest、CMockery。但是,对于 Qt 这种带界面的程序该怎么测试呢?

Qt Test 是一个基于 Qt 的应用程序和库的单元测试框架。Qt Test 提供了单元测试框架中常见的所有功能,以及用于测试图形用户界面的扩展。Qt Test 旨在简化基于 Qt 的应用程序和库的单元测试编写。
官方介绍:https://doc.qt.io/qt-6/qtest-overview.html

不满

根据 Qt 官方的测试教程,编写一个最简单的测试用例 tst_qstring.cpp 如下所示:

// tst_qstring.cpp
#include <QtTest/QtTest>

// 测试套
class tst_QString: public QObject    
{
   
   
    Q_OBJECT

private slots:
    void toUpper();  // 测试用例
};

void tst_QString::toUpper()
{
   
   
    QString str = "Hello";
    QVERIFY(str.toUpper() == "HELLO");
}

QTEST_MAIN(tst_QString)

#include "tst_qstring.moc"

QTEST_MAIN 宏定义如下,实际上是定义一个 main 函数:

#define QTEST_MAIN(TestObject) \
int main(int argc, char *argv[]) \
{
     
      \
    QTEST_MAIN_IMPL(TestObject) \
}

#define QTEST_MAIN_IMPL(TestObject) \
    TESTLIB_SELFCOVERAGE_START(#TestObject) \
    QT_PREPEND_NAMESPACE(QTest::Internal::callInitMain
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

canpool

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值