如何在运行时在 C++ 中创建虚拟 QQuickItem

How to create a dummy QQuickItem in C++ at runtime

我正在使用 Qt 5.7 并使用 gtest 或称为 googletests 的单元测试。

我有一个函数可以测试哪个摄入 QQuickItem。为了对此进行测试,我 想在 运行 中进行单元测试时即时创建一个 QQuickItem可能吗?

请注意,我确实有权访问 QQmlApplicationEnginemain.qml 等任何 qml 文件。但是我应该能够在我的测试项目的资源中创建一个 dummy.qml ?
我还认为做 #include <QQmlApplicationEngine> 应该可以让我访问 QQmlApplicationEngine

我如何在 C++ 代码中创建虚拟 QQuickItem 并在我的单元测试中使用一些有效的宽度和高度 ,并将其传递给我的方法在运行时间?

使用隔离的 QQuickItem 对象进行测试的最简单方法是使用 QQuickView:

QQuickView * view = new QQuickView;
view->setSource(QUrl(QStringLiteral("qrc:/dummy.qml")));
QQuickItem * dummyItem = view->rootObject();

由于大众需求:

// dummy.qml
import QtQuick 2.0

Item {
  width: 200
  height: 200
}