【问题标题】:How to use Qt Test module to test my own application?如何使用 Qt Test 模块来测试我自己的应用程序?
【发布时间】:2020-12-26 14:54:18
【问题描述】:

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

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();
}

笔.h

#ifndef PEN_H
#define PEN_H
    
class Pen
{
public:
    Pen();
    void setValue(int value);
    int getValue();

private:
    int value;
};

#endif // PEN_H

笔.cpp

#include "pen.h"

Pen::Pen()
{
    value = 0;
}

void Pen::setValue(int value)
{
    this->value = value;
}

int Pen::getValue()
{
   return value;
}

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

我浏览了有关 Qt Test 模块的 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 Test 来测试我自己的应用程序。

我知道我可以在 QtCreator 中添加一个测试模块作为 Other Projects -> Qt Unit Test,但我不知道如何将它与我自己的应用程序链接。

提前致谢。

【问题讨论】:

    标签: c++ qt qttest


    【解决方案1】:

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

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

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

    对于带有测试的正确项目结构,您可以参考此link 接受的答案。

    【讨论】:

    • 非常感谢您的回答。老实说,我迷路了,看不到任何可能的道路。此外,当我对问题而不是答案投反对票时,我真的很沮丧。非常感谢您的帮助。现在有了您的支持,我知道如何使用 Qt Test。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-05
    • 2018-10-17
    • 1970-01-01
    • 1970-01-01
    • 2018-05-02
    • 2010-10-12
    相关资源
    最近更新 更多