簡體   English   中英

如何使用 Qt Test 模塊來測試我自己的應用程序?

[英]How to use Qt Test module to test my own application?

我有一個簡單的控制台應用程序,如下所示,我想學習如何使用 Qt Test 來測試其功能。 老實說,我正在嘗試學習如何使用 Qt 測試模塊。

我的應用程序

QT -= gui
CONFIG += c++11 console
CONFIG -= app_bundle

DEFINES += QT_DEPRECATED_WARNINGS

SOURCES += \
        main.cpp \
    pen.cpp \

HEADERS += \
    pen.h

主程序

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

#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 測試模塊的 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 中添加一個測試模塊作為其他項目 - > Qt 單元測試,但我不知道如何將它與我自己的應用程序鏈接。

提前致謝。

首先,創建一個 Qt 測試應用程序(TestPen)。 由於您要測試 Pen 類的功能,您應該將所需的頭文件和源文件添加到測試項目的 .pro 文件(TestPen.pro)中,例如:

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

然后你可以在你的 tst_testpen.cpp 中包含 pen.h 並測試你的 Pen 類的功能,如 TestQString 示例中所示。

對於帶有測試的正確項目結構,您可以參考此鏈接中接受的答案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM