假设定义了一个简单的类,实现int型的相加和String型的相加,首先我们先编写一个函数实现这个功能,代码如下:
示例二:
mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QString>
class MainWindow
{
public:
explicit MainWindow();
~MainWindow();
static int sumab(int a, int b);
static QString sumab(QString a, QString b);
};
#endif // MAINWINDOW_H
mainwindow.cpp
#include "mainwindow.h"
MainWindow::MainWindow()
{}
MainWindow::~MainWindow()
{}
int MainWindow::sumab(int a, int b){
return a+b;
}
QString MainWindow::sumab(QString a, QString b){
return a+b;
}
测试文件的编写
我们的工程用qmake管理(以后同),testmainwindow.cpp的写法为:
testmainwindow.cpp
#include <QtCore/QString>
#include <QtTest/QtTest>
#include “mainwindow.h”
class TestProjetcATest : public QObject
{
Q_OBJECT
public:
TestProjetcATest();
private Q_SLOTS:
//每个私有的private slot函数都是会自动调用的测试函数
void testCase1();
}
TestProjetcATest::TestProjetcATest()
{
}
void TestProjetcATest::testCase1()
{
QString result = "abcd";
QCOMPARE(MainWindow::sumab(2,3),5);
QCOMPARE(MainWindow::sumab("ab","cd"),result);
}
//用于构建可执行的测试程序
QTEST_APPLESS_MAIN(TestProjetcATest)
#include "tst_testprojetcatest.moc"
这里要注意的是源文件的位置问题,在测试程序的头文件处,我们添加的形式是:#include “mainwindow.h”这是因为我将测试的类和测试程序放在同一个项目里面,如果我们的测试项目和被测项目不在同一个项目里面,那么我们需要将被测的项目添加到测试项目里面,那在导入头文件的时候,就应该是#include “../路径/mainwindow.h”
示例二结果: