qt单元测试QTreeWidgetItem尚未声明

时间:2015-09-06 18:26:38

标签: c++ qt unit-testing qtreewidgetitem

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

我已经编写了简单的空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()。

测试项目开始时,this erorrs出现了。 我不知道它为什么不编译,但我想一些定义并包含错误。

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/\\\"

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

  

P.S.我的英文不是很好。请宽容。

1 个答案:

答案 0 :(得分:0)

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

我在@Chernobyl

的帮助下找到了答案there

P.S。如果要正确启动测试,则需要在TEST.pro文件中附加测试项目的所有头和源。它需要包含moc_ *文件。 我试图找到这个解决方案很长时间了。