我在这里找到了我自己的问题的答案。
尝试始终执行 initTestCase() 和 cleanupTestCase() 方法,以便可以在启动和测试结束时执行它们。这些方法通常是创建和删除对象,如您在示例中所见。如果你不创建它们,它们无论如何都会被“执行”,但不会做任何事情。
#ifndef CIRCLETEST_H
#define CIRCLETEST_H
#include <QObject>
#include <QtTest/QtTest>
#include "../Geometry/circle.h"
class CircleTest : public QObject
{
Q_OBJECT
public:
explicit CircleTest(QObject *parent = 0);
private:
Circle *c1;
Circle *c2;
private slots:
void initTestCase();
void testRadius();
void testArea();
void cleanupTestCase();
};
#endif // CIRCLETEST_H
圈子.h
#include "circletest.h"
CircleTest::CircleTest(QObject *parent) :
QObject(parent)
{
}
void CircleTest::initTestCase()
{
c1 = new Circle();
c2 = new Circle(10);
}
void CircleTest::testArea()
{
QCOMPARE(c1->getArea(), 3.14);
QCOMPARE(c2->getArea(), 314.0);
}
void CircleTest::testRadius()
{
QCOMPARE(c1->getRadius(), 1.0);
QCOMPARE(c2->getRadius(), 10.0);
}
void CircleTest::cleanupTestCase()
{
delete c1;
delete c2;
}