Qt之 Testlib学习(1)
来源:互联网 发布:vans淘宝有正品吗 编辑:程序博客网 时间:2024/05/24 00:22
编写一个单元测试程序
环境 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_OBJECTprivate 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 *********
$
- Qt之 Testlib学习(1)
- Qt Testlib 基本使用 (1)
- Qt Testlib 测试GUI(1)
- Qt Testlib 基本使用 (2)
- testLib
- Qt Testlib 测试GUI(2)
- TestLib目录
- Qt学习之路(1)
- Qt之XML学习1
- qt学习之路1
- qt学习之qt creator
- qt学习之qt安装
- Qt学习之路【1】:QT显示中文问题
- Qt学习之路(1):前言
- Qt学习之路(1):前言
- Qt学习之路(1):前言
- Qt学习之路(1):前言
- Qt学习之路(1):前言
- 系统架构设计之微服务(Microservice)
- iOS 设置导航栏半透明后添加视图变化
- 网络基础之网络怎样联通的
- [程序猿初养成]Coursera-C程序设计进阶-第二周作业-编程题#5
- 寄存器、CACHE、RAM、ROM、flash相关概念整理
- Qt之 Testlib学习(1)
- C++ 调用 Python 初探(一)
- Weex & ReactNative & JSPatch
- php返回json数据中文显示的问题
- Android注解原理与常用注解框架
- vim复制
- android 学习随笔一(配置调试与基础)
- Android性能优化总结
- 第12章 5竞猜