QQuickTest 命名空间

The QQuickTest namespace contains all the functions and macros related to Qt Quick Test. 更多...

头文件 #include <QtQuickTest>

函数

boolqIsPolishScheduled(const QQuickItem *item)
(since 6.4) boolqIsPolishScheduled(const QQuickWindow *window)
(since 6.4) boolqWaitForPolish(const QQuickItem *item, int timeout = defaultTimeout)
(since 6.4) boolqWaitForPolish(const QQuickWindow *window, int timeout = defaultTimeout)

QUICK_TEST_MAIN(name)
QUICK_TEST_MAIN_WITH_SETUP(name, QuickTestSetupClass)

详细介绍

有关如何编写 Qt Quick 单元测试的信息,请参阅 Qt Quick Test 简介

有关链接到 Qt Quick Test C++ 库的信息,请参阅 Qt Quick Test C++ API

另请参阅 在 QML 测试之前执行 C++

函数文档

bool QQuickTest::qIsPolishScheduled(const QQuickItem *item)

如果在自上次调用 polish() 以来未对 item 调用 updatePolish(),则返回 true,否则返回 false

在 QML 中设置属性时,由于分配的值,项目必须执行任何布局,这可能不会立即生效,而是可以推迟到项目经过抛光。对于这些情况,您可以使用此函数确保在测试执行继续之前已经抛光项目。例如

QVERIFY(QQuickTest::qIsPolishScheduled(item));
QVERIFY(QQuickTest::qWaitForItemPolished(item));

如果不调用上述 qIsPolishScheduled(),则对 qWaitForItemPolished() 的调用可能会看到没有抛光计划,因此立即通过,假设项目已抛光。此函数使得明显的原因是项目未被抛光,并允许在此类情况下早期失败测试。

此函数的 QML 等价函数是 isPolishScheduled()。

另请参阅 QQuickItem::polish() 和 QQuickItem::updatePolish

[since 6.4] bool QQuickTest::qIsPolishScheduled(const QQuickWindow *window)

此函数重载了 qIsPolishScheduled()。

如果此窗口管理的任何项通过 qIsPolishScheduled(item) 返回 true,则返回 true,否则返回 false

例如,如果一个项目在场景中的某个位置可能或可能不被抛光,但是如果您需要等待它,则可以使用以下代码

if (QQuickTest::qIsPolishScheduled(window))
    QVERIFY(QQuickTest::qWaitForPolish(window));

此函数的 QML 等价函数是 isPolishScheduled()。

此函数是在 Qt 6.4 中引入的。

另请参阅QQuickItem::polish(),QQuickItem::updatePolish()和QQuickTest::qWaitForPolish()。

[自6.4以来] bool QQuickTest::qWaitForPolish(const QQuickItem *item, int timeout = defaultTimeout)

等待 timeout 毫秒或直到在 item 上调用 updatePolish()。

如果在 timeout 毫秒内调用 item 上的 updatePolish(),则返回 true,否则返回 false

此函数是在 Qt 6.4 中引入的。

另请参阅QQuickItem::polish(),QQuickItem::updatePolish()和QQuickTest::qIsPolishScheduled()。

[自6.4以来] bool QQuickTest::qWaitForPolish(const QQuickWindow *window, int timeout = defaultTimeout)

等待 timeout 毫秒或直到 window 管理的所有项目对 qIsPolishScheduled(item) 返回 false

如果在 timeout 毫秒内 window 中所有项目的 qIsPolishScheduled(item) 返回 false,则返回 true,否则返回 false

此函数的 QML 相当函数是 waitForPolish()。

此函数是在 Qt 6.4 中引入的。

另请参阅QQuickItem::polish(),QQuickItem::updatePolish()和QQuickTest::qIsPolishScheduled()。

宏文档

QUICK_TEST_MAIN(name)

设置 Qt Quick 测试应用的入口点。 name 参数唯一标识这一组测试。

#include <QtQuickTest>
QUICK_TEST_MAIN(example)

注意: 该宏假定您的测试源在当前目录中,除非设置了环境变量 QUICK_TEST_SOURCE_DIR

另请参阅QUICK_TEST_MAIN_WITH_SETUP()和运行 Qt Quick 测试

QUICK_TEST_MAIN_WITH_SETUP(name, QuickTestSetupClass)

设置 Qt Quick 测试应用的入口点。 name 参数唯一标识这一组测试。

此宏与 QUICK_TEST_MAIN 相同,除了它接受一个额外的参数 QuickTestSetupClass,这是从 QObject 衍生的类的类型,将实例化此类。使用此类,可以在运行 QML 测试之前定义额外的设置代码。

注意: 该宏假定您的测试源在当前目录中,除非设置了环境变量 QUICK_TEST_SOURCE_DIR

下面的示例演示了如何使用此宏

// src_qmltest_qquicktest.cpp
#include <QtQuickTest>
#include <QQmlEngine>
#include <QQmlContext>
#include <QGuiApplication>

class Setup : public QObject
{
    Q_OBJECT

public:
    Setup() {}

public slots:
    void applicationAvailable()
    {
        // Initialization that only requires the QGuiApplication object to be available
    }

    void qmlEngineAvailable(QQmlEngine *engine)
    {
        // Initialization requiring the QQmlEngine to be constructed
        engine->rootContext()->setContextProperty("myContextProperty", QVariant(true));
    }

    void cleanupTestCase()
    {
        // Implement custom resource cleanup
    }
};

QUICK_TEST_MAIN_WITH_SETUP(mytest, Setup)

#include "src_qmltest_qquicktest.moc"

另请参阅QUICK_TEST_MAIN()和运行 Qt Quick 测试

© 2024 Qt 公司有限公司。在此处包含的文档贡献是各自所有者的版权。本处提供的文档是根据自由软件开发基金会发布的GNU自由文档许可证版本1.3的条款许可的。Qt 和相应的徽标是芬兰和/或其他国家的 Qt 公司的商标。所有其他商标均为其各自所有者的财产。