c++ - qt 单元测试 QTreeWidgetItem 尚未声明

标签 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出现错误。 我不知道为什么它没有编译,但我猜是一些定义并包含错误。

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

我找到了答案 there在@Chernobyl 的帮助下

附言如果你想正确地开始你的测试,你需要在你的 TEST.pro 文件中附加所有的标题和测试项目的源代码。它需要 moc_* 文件。 我试图找到这个解决方案很长时间。

关于c++ - qt 单元测试 QTreeWidgetItem 尚未声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32426852/

相关文章:

c# - C++ 到 C# 将二进制文件读入二维 float 组

c++ - 为什么 CLion 可以正确构建和链接 Qt,但不能运行我的可执行文件?

qt - 如何在qt中设置小部件的绝对位置

C++ Win32 改变静态颜色

c++ - 获取 C++ 段错误

qt - PyQt4/Qt : Set orientation of QDial (minimum value at the top)

Java监控单元测试的内存使用情况

java - 是否可以使用 EasyMock 创建一个实现多个接口(interface)的模拟对象?

c# - 将匿名类型转换为动态类型

c++ - 为什么这个enable_if函数模板不能专用于VS2017?