QQuickTest Namespace
L'espace de noms QQuickTest contient toutes les fonctions et macros liées à Qt Quick Test. En savoir plus...
| Header: | #include <QtQuickTest> |
Fonctions
| 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) |
Macros
(since 6.10) | QTRY_VERIFY_ACTIVE_FOCUS(item) |
| QUICK_TEST_MAIN(name) | |
| QUICK_TEST_MAIN_WITH_SETUP(name, QuickTestSetupClass) | |
(since 6.10) | QVERIFY_ACTIVE_FOCUS(item) |
Description détaillée
Consultez l’Introduction à Qt Quick Test pour savoir comment écrire des tests unitaires d’ Qt Quick.
Pour lier la bibliothèque C++ d'Qt Quick Test, consultez Qt Quick Test C++ API.
Voir également Exécution detests C++ avant les tests QML.
Documentation des fonctions
bool QQuickTest::qIsPolishScheduled(const QQuickItem *item)
Renvoie « true » si la fonction « updatePolish() » n'a pas été appelée sur « item » depuis le dernier appel à « polish() », sinon renvoie « false ».
Lors de l'affectation de valeurs à des propriétés en QML, toute mise en page que l'élément doit effectuer à la suite de cette affectation peut ne pas prendre effet immédiatement, mais être reportée jusqu’à ce que l’élément soit « poli ». Dans ces cas-là, vous pouvez utiliser cette fonction pour vous assurer que l’élément a bien été « poli » avant que l’exécution du test ne se poursuive. Par exemple :
QVERIFY(QQuickTest::qIsPolishScheduled(item));
QVERIFY(QQuickTest::qWaitForItemPolished(item));Sans l’appel à ` qIsPolishScheduled() ` ci-dessus, l’appel à ` qWaitForItemPolished() ` pourrait constater qu’aucun polissage n’était prévu et donc réussir instantanément, en supposant que l’élément ait déjà été poli. Cette fonction explique clairement pourquoi un élément n’a pas été poli et permet aux tests d’échouer rapidement dans de telles circonstances.
L’équivalent QML de cette fonction est ` isPolishScheduled()`.
Voir également QQuickItem::polish() et QQuickItem::updatePolish().
[since 6.4] bool QQuickTest::qIsPolishScheduled(const QQuickWindow *window)
Renvoie « true » s’il existe des éléments gérés par cette fenêtre pour lesquels la méthode « qIsPolishScheduled(item) » renvoie « true », sinon renvoie « false ».
Par exemple, si un élément situé quelque part dans la scène peut être ou non « poli », mais que vous devez attendre qu’il le soit s’il l’est, vous pouvez utiliser le code suivant :
if (QQuickTest::qIsPolishScheduled(window))
QVERIFY(QQuickTest::qWaitForPolish(window));L'équivalent QML de cette fonction est ` isPolishScheduled()`.
Cette fonction surcharge QQuickTest::qIsPolishScheduled().
Cette fonction a été introduite dans Qt 6.4.
Voir également QQuickItem::polish(), QQuickItem::updatePolish() et QQuickTest::qWaitForPolish().
[since 6.4] bool QQuickTest::qWaitForPolish(const QQuickItem *item, int timeout = defaultTimeout)
Attend timeout millisecondes ou jusqu’à ce que la fonction updatePolish() ait été appelée sur item.
Renvoie true si updatePolish() a été appelé sur item dans un délai de timeout millisecondes, sinon renvoie false.
Cette fonction a été introduite dans Qt 6.4.
Voir également QQuickItem::polish(), QQuickItem::updatePolish() et QQuickTest::qIsPolishScheduled().
[since 6.4] bool QQuickTest::qWaitForPolish(const QQuickWindow *window, int timeout = defaultTimeout)
Attend timeout millisecondes ou jusqu’à ce que qIsPolishScheduled(item) renvoie false pour tous les éléments gérés par window.
Renvoie true si qIsPolishScheduled(item) renvoie false pour tous les éléments dans un délai de timeout millisecondes, sinon renvoie false.
L’équivalent QML de cette fonction est waitForPolish().
Cette fonction a été introduite dans Qt 6.4.
Voir également QQuickItem::polish(), QQuickItem::updatePolish() et QQuickTest::qIsPolishScheduled().
Documentation sur les macros
[since 6.10] QTRY_VERIFY_ACTIVE_FOCUS(item)
Cette macro effectue la même vérification que QVERIFY_ACTIVE_FOCUS avec item, mais de manière répétée, jusqu’à ce que la condition devienne vraie ou que le délai d’expiration (en millisecondes) soit atteint. Entre chaque évaluation, les événements seront traités. Si le délai d’expiration est atteint, un échec est consigné dans le journal de test et le test ne sera pas exécuté plus loin.
Remarque : cette macro ne peut être utilisée que dans une fonction de test appelée par le framework de test.
Cette macro a été introduite dans Qt 6.10.
QUICK_TEST_MAIN(name)
Configure le point d’entrée d’une application Qt Quick Test. L’argument name identifie de manière unique cet ensemble de tests.
#include <QtQuickTest>
QUICK_TEST_MAIN(example)Remarque : la macro part du principe que vos sources de test se trouvent dans le répertoire courant, sauf si la variable d’environnement QUICK_TEST_SOURCE_DIR est définie.
Voir également QUICK_TEST_MAIN_WITH_SETUP() et Exécution des tests Qt Quick .
QUICK_TEST_MAIN_WITH_SETUP(name, QuickTestSetupClass)
Configure le point d'entrée d'une application de type « Qt Quick Test ». L'argument « name » identifie de manière unique cet ensemble de tests.
Cette macro est identique à ` QUICK_TEST_MAIN()`, à l’exception qu’elle prend un argument supplémentaire, ` QuickTestSetupClass`, qui correspond au type d’une classe dérivée de ` QObject` et qui sera instanciée. Cette classe permet de définir du code de configuration supplémentaire à exécuter avant le lancement du test QML.
Remarque : la macro part du principe que vos sources de test se trouvent dans le répertoire courant, sauf si la variable d’environnement QUICK_TEST_SOURCE_DIR est définie.
L'extrait de code suivant illustre l'utilisation de cette macro :
// 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"Voir également QUICK_TEST_MAIN() et Exécution de tests Qt Quick .
[since 6.10] QVERIFY_ACTIVE_FOCUS(item)
Vérifie si l'item (qui doit être dérivée de QQuickItem) possède active focus. Si c'est le cas, l'exécution se poursuit. Dans le cas contraire, un échec est consigné dans le journal de test et le test ne sera pas exécuté plus loin. Le message d'échec contient des informations spécifiques au focus qui sont pertinentes pour diagnostiquer la cause de l'échec.
Remarque : cette macro ne peut être utilisée que dans une fonction de test appelée par le framework de test.
Cette macro a été introduite dans Qt 6.10.
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.