qt单元测试QTreeWidgetItem没有被声明

qt unit test QTreeWidgetItem has not been declared

本文关键字:声明 单元测试 QTreeWidgetItem qt      更新时间:2023-10-16

我有一个非常糟糕的gui应用程序与类工具()。我想测试其他类树()在同一文件与单元测试。

我写了一个简单的空Tree类来尝试单元测试。

TOOLS.H

#ifndef TOOLS_H
#define TOOLS_H
#include "json.h"
#include <QString>
#include <QList>
#include <QSettings>
...
class Tools
{
public:
    Tools();
    static void createTree(Json::Value parsedJSON, treeElement *Element);
    static void reloadTree(QTreeWidgetItem *item, treeElement *Element);
    ....
    static QMap<QString, QString> Dictionary;
};
class Tree
{
public:
    Tree();
};
#endif // TOOLS_H

这个文件中的大部分代码都是由QT自动生成的,我只写了isCreatable()。

当测试项目开始时,出现了这个错误。我不知道为什么不编译,但我猜是一些定义,包括错误。

TREE_TEST.cpp

#include <QString>
#include <QtTest>
#include "tools.h"
class TreeTest : public QObject
{
    Q_OBJECT
public:
    TreeTest();
private Q_SLOTS:
    void isCreatable();
};
TreeTest::TreeTest()
{
}
void TreeTest::isCreatable()
{
    Tree *newTree = NULL;
    QVERIFY2(newTree == NULL, "Can't create empty Tree");
    newTree = new Tree();
    QVERIFY2(newTree != NULL, "Can't create new instance of Tree");
}
QTEST_APPLESS_MAIN(TreeTest)
#include "tst_treetest.moc"

这是我的测试文件。我包括测试项目的路径,以及依赖项(只是简单的json解析库)。

TREE_TEST.pro

#-------------------------------------------------
#
# Project created by QtCreator 2015-09-06T20:42:18
#
#-------------------------------------------------
QT       += testlib gui
TARGET = tst_treetest
CONFIG   += console
CONFIG   -= app_bundle
TEMPLATE = app
INCLUDEPATH += ../../dependencies/json
INCLUDEPATH += ../../

SOURCES += tst_treetest.cpp
DEFINES += SRCDIR=\"$$PWD/\"

请帮助我认识并解决这个问题。我不明白,怎么了…

<引用类>我的英语不是很好。请宽容一点。

目标添加到TREE_TEST.cpp #include <QTreeWidgetItem>。然后添加到TREE_TEST。pro QT += widgets

我在那里找到了答案,在@Chernobyl的帮助下

注:如果要正确启动测试,则需要在TEST中附加被测试项目的所有标头和源。支持文件。因为有moc_*文件,所以需要它。