QQuickTest 命名空间
The QQuickTest namespace contains all the functions and macros related to Qt Quick Test. 更多...
头文件 | #include <QtQuickTest> |
函数
bool | qIsPolishScheduled(const QQuickItem *item) |
(since 6.4) bool | qIsPolishScheduled(const QQuickWindow *window) |
(since 6.4) bool | qWaitForPolish(const QQuickItem *item, int timeout = defaultTimeout) |
(since 6.4) bool | qWaitForPolish(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 公司的商标。所有其他商标均为其各自所有者的财产。