在介绍QT的单元测试框架之前,先说一下单元测试。单元测试最重要的就是要将应用拆分成一个个独立的可测试的函数模块。只有将应用拆分成一个个函数模块之后,应用才是可测的。所以开发领域衍生出来了一个概念,Test-driven development(TDD)测试驱动的开发。将应用拆分成一个个独立的可测试的模块之后,我们就可以针对函数模块进行测试编码了。
针对函数模块的各种可能的调用场景编写测试用例,这样每次我们的代码修改的时候,我们都可以通过测试来验证我们的修改是否会对模块的功能产生影响。这样就相当于给我们的软件添加了一层防护网。编写测试用例很早之前都得是靠自己手写的,这样效率很低,后来出现了一些测试框架能帮助开发者自动化完成这一工作,比较出名的测试框架有Google Test和我们今天介绍的Qt Test。
使用Qt的测试框架,首先新建一个测试工程
新建完测试工程之后,我们在工程中添加所有单元测试用例用到的基类,基类中包含了所有测试用例用到的通用方法和属性。
//test-suite.h
#ifndef TESTSUITE_H
#define TESTSUITE_H
#include <QObject>
#include <QString>
#include <QtTest/QtTest>
#include <vector>
namespace test {
class TestSuite : public QObject
{
Q_OBJECT
public:
explicit TestSuite(const QString& _testName =