The QQuickTest namespace contains all the functions and macros related to Qt Quick Test. 更多...
头: | #include <QtQuickTest> |
bool | qIsPolishScheduled (const QQuickItem * item ) |
bool | qWaitForItemPolished (const QQuickItem * item , int timeout = 5000) |
QUICK_TEST_MAIN ( name ) | |
QUICK_TEST_MAIN_WITH_SETUP ( name , QuickTestSetupClass ) |
见 Introduction to Qt Quick Test for information about how to write Qt Quick unit tests.
To link to the Qt Quick Test C++ library, see Qt Quick Test C++ API .
另请参阅 在 QML 测试之前执行 C++ .
[since 5.13]
bool
QQuickTest::
qIsPolishScheduled
(const
QQuickItem
*
item
)
返回
true
if
updatePolish()
has not been called on
item
since the last call to
polish()
,否则返回
false
.
When assigning values to properties in QML, any layouting the item must do as a result of the assignment might not take effect immediately, but can instead be postponed until the item is polished. For these cases, you can use this function to ensure that the item has been polished before the execution of the test continues. For example:
QVERIFY(QQuickTest::qIsPolishScheduled(item)); QVERIFY(QQuickTest::qWaitForItemPolished(item));
Without the call to
qIsPolishScheduled()
above, the call to
qWaitForItemPolished()
might see that no polish was scheduled and therefore pass instantly, assuming that the item had already been polished. This function makes it obvious why an item wasn't polished and allows tests to fail early under such circumstances.
The QML equivalent of this function is isPolishScheduled() .
该函数在 Qt 5.13 引入。
另请参阅 QQuickItem::polish () 和 QQuickItem::updatePolish ().
[since 5.13]
bool
QQuickTest::
qWaitForItemPolished
(const
QQuickItem
*
item
,
int
timeout
= 5000)
等待 timeout milliseconds or until updatePolish() has been called on item .
返回
true
if
updatePolish()
was called on
item
在
timeout
milliseconds, otherwise returns
false
.
The QML equivalent of this function is waitForItemPolished() .
该函数在 Qt 5.13 引入。
另请参阅 QQuickItem::polish (), QQuickItem::updatePolish (),和 QQuickTest::qIsPolishScheduled ().
Sets up the entry point for a Qt Quick Test application. The name argument uniquely identifies this set of tests.
#include <QtQuickTest>
QUICK_TEST_MAIN(example)
注意:
The macro assumes that your test sources are in the current directory, unless the
QUICK_TEST_SOURCE_DIR
environment variable is set.
另请参阅 QUICK_TEST_MAIN_WITH_SETUP () 和 Running Qt Quick Tests .
Sets up the entry point for a Qt Quick Test application. The name argument uniquely identifies this set of tests.
This macro is identical to QUICK_TEST_MAIN (), except that it takes an additional argument QuickTestSetupClass , a pointer to a QObject -derived class. With this class it is possible to define additional setup code to execute before running the QML test.
注意:
The macro assumes that your test sources are in the current directory, unless the
QUICK_TEST_SOURCE_DIR
environment variable is set.
The following snippet demonstrates the use of this macro:
// src_qmltest_qquicktest.cpp #include <QtQuickTest> #include <QQmlEngine> #include <QQmlContext> class Setup : public QObject { Q_OBJECT public: Setup() {} public slots: void qmlEngineAvailable(QQmlEngine *engine) { engine->rootContext()->setContextProperty("myContextProperty", QVariant(true)); } }; QUICK_TEST_MAIN_WITH_SETUP(mytest, Setup) #include "src_qmltest_qquicktest.moc"
另请参阅 QUICK_TEST_MAIN () 和 Running Qt Quick Tests .