Qt之 Testlib学习(1)

5 篇文章 0 订阅

编写一个单元测试程序

环境 Ubuntu14.04 + Qt 4.8.6

1. 首先,新建文件:

$ mkdir testQString
$ cd testQString
$ touch testQString.cpp

2. 编辑 testQString.cpp

测试QString类的行为。首先,需要一个用于包含测试函数的类。这个类必须从QObject继承,包含QTest头文件,并且测试函数必须声明为私有槽,这样测试框架才可以找到并执行他们。

#include <QtTest/QtTest>
#include <QDebug>

class TestQString:public QObject
{
     Q_OBJECT
private slots:
     void toUpper();
};


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


QTEST_MAIN(TestQString)     
#include "testQString.moc"  

QVERIFY()宏:将计算传入的表达式的值。如果为真,则测试函数继续进行;否则会向测试日志中增加一条描述错误的信息,并且该测试函数会停止执行。
QCOMPARE()宏:向测试日志中增加更多的输出信息.如果两个字符串不相等,他们的值都会追加到测试日志中,
QTEST_MAIN()宏: 使测试程序能够单独执行, 将扩展成一个简单的main()函数,该main()函数会执行所有的测试函数。注意:如果测试类的声明和实现都在同一个cpp文件中,需要包含产生的moc文件,以使Qt的内省机制起作用。

3.编译

$ qmake -project "QT += testlib" -o testQString.pro
$ qmake
$ make

  • 注意: 如果使用windows,将make换成nmake或者其它编译工具。

4. 运行

$ ./testQString
********* Start testing of TestQString *********
Config: Using QTest library 4.8.6, Qt 4.8.6
PASS : TestQString::initTestCase()
FAIL! : TestQString::toUpper() 'str.toUpper() == "HELLO WORLD"' returned FALSE. ()
Loc: [testQString.cpp(16)]
PASS : TestQString::cleanupTestCase()
Totals: 2 passed, 1 failed, 0 skipped
********* Finished testing of TestQString *********
$

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值