使用QtTest
所有项目路径:
widget.h
#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>QT_BEGIN_NAMESPACE
namespace Ui {
class Widget;
}
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();int add(int a,int b);
private:Ui::Widget *ui;
};
#endif // WIDGET_H
widget.cpp
#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);ui->label->setText(QString::number(add(100,100)));
}Widget::~Widget()
{delete ui;
}int Widget::add(int a, int b)
{return a+b;
}
QtTestSubPro.pro
QT += core gui widgets testlib # 必须包含这四个模块
#QT -= guiCONFIG += qt console warn_on depend_includepath testcase
CONFIG -= app_bundleTEMPLATE = app
# 添加包含路径
INCLUDEPATH += $$PWD/../MainPro/SOURCES += tst_mainprotest.cppSOURCES+= $$PWD/../MainPro/widget.cppHEADERS += $$PWD/../MainPro/widget.h \FORMS += $$PWD/../MainPro/widget.ui
tst_mainprotest.cpp
#include <QtTest>
#include "widget.h"
// add necessary includes hereclass mainProTest : public QObject
{Q_OBJECTpublic:mainProTest();~mainProTest();private slots:void test_case1();
};mainProTest::mainProTest() {}mainProTest::~mainProTest() {}void mainProTest::test_case1()
{Widget w;QCOMPARE(w.add(100,200),200);
}QTEST_APPLESS_MAIN(mainProTest)#include "tst_mainprotest.moc"
结果: