如何解决如何使用Qt Test模块来测试我自己的应用程序?
我有一个简单的控制台应用程序,如下所示,我想学习如何使用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本身的QString上进行测试。
#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 Test来测试自己的应用程序。
我知道我可以在QtCreator中添加测试模块作为其他项目-> Qt单元测试,但是我不知道如何将其与自己的应用程序链接。
谢谢。
解决方法
首先,创建一个Qt Test应用程序(TestPen)。由于要测试Pen类的功能,因此应添加必需的标头和源文件以测试项目的.pro文件(TestPen.pro),例如:
SOURCES += ../pen.cpp
HEADERS += ../pen.h
然后您可以将pen.h包含在tst_testpen.cpp中,并测试您的Pen类的功能,如TestQString示例中所示。
有关带有测试的适当项目结构,您可以在此link上参考公认的答案。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。