如何使用Qt测试模块来测试我自己的应用程序



我有一个简单的控制台应用程序,如下所示,我想学习如何使用Qt Test来测试其功能。老实说,我正在努力学习如何使用Qt测试模块。

MyApplication.pro

QT -= gui
CONFIG += c++11 console
CONFIG -= app_bundle
DEFINES += QT_DEPRECATED_WARNINGS
SOURCES += 
main.cpp 
pen.cpp 
HEADERS += 
pen.h

main.cpp

#include <QCoreApplication>
#include <QDebug>
#include "pen.h"
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
Pen* p = new Pen();
p->setValue(5);
qDebug() << "Value of the pen is" << p->getValue();
return a.exec();
}

pen.h

#ifndef PEN_H
#define PEN_H

class Pen
{
public:
Pen();
void setValue(int value);
int getValue();
private:
int value;
};
#endif // PEN_H

pen.cpp

#include "pen.h"
Pen::Pen()
{
value = 0;
}
void Pen::setValue(int value)
{
this->value = value;
}
int Pen::getValue()
{
return value;
}

简单地说,这只是一个简单的应用程序。

我浏览了关于Qt测试模块的Qt文档,并找到了以下运行测试的示例代码。但它测试的是QString,Qt中的一个类。

#include <QtTest/QtTest>
class TestQString: public QObject
{
Q_OBJECT
private slots:
void toUpper();
};
void TestQString::toUpper()
{
QString str = "Hello";
QCOMPARE(str.toUpper(), QString("HELLO"));
}
QTEST_MAIN(TestQString)
#include "testqstring.moc"

我的问题是我应该如何使用Qt测试来测试我自己的应用程序。

我知道我可以在QtCreator中添加一个测试模块作为其他项目->Qt单元测试,但我不知道如何将它与我自己的应用程序链接起来。

提前谢谢。

首先,创建一个Qt测试应用程序(TestPen(。由于您想测试Pen类的功能,您应该将所需的头文件和源文件添加到测试项目的.pro文件(TestPen.pro(中,如:

SOURCES += ../pen.cpp
HEADERS += ../pen.h

然后,您可以在tst_testpen.cpp中包含pen.h,并测试pen类的功能,如TestQString示例所示。

为了获得正确的项目结构和测试,您可以在这个链接上参考已接受的答案。

相关内容

  • 没有找到相关文章

最新更新