Sur cette page

QQuickTest Namespace

L'espace de noms QQuickTest contient toutes les fonctions et macros liées à Qt Quick Test. Plus d'informations...

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

Voir l'introduction à Qt Quick Test pour des informations sur la manière d'écrire des tests unitaires Qt Quick.

Pour créer un lien vers la bibliothèque Qt Quick Test C++, voir Qt Quick Test C++ API.

Voir également Exécution de C++ avant les tests QML.

Documentation des fonctions

bool QQuickTest::qIsPolishScheduled(const QQuickItem *item)

Renvoie true si updatePolish() n'a pas été appelé 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 l'affectation peut ne pas prendre effet immédiatement, mais peut être reportée jusqu'à ce que l'élément soit poli. Dans ce cas, vous pouvez utiliser cette fonction pour vous assurer que l'élément a été poli avant que l'exécution du test ne se poursuive. En voici un exemple :

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

Sans l'appel à qIsPolishScheduled() ci-dessus, l'appel à qWaitForItemPolished() pourrait voir qu'aucun polissage n'a été programmé et donc passer instantanément, en supposant que l'élément a déjà été poli. Cette fonction rend évidente la raison pour laquelle un élément n'a pas été poli et permet aux tests d'échouer prématurément 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 qIsPolishScheduled(item) renvoie true, sinon false.

Par exemple, si un élément situé quelque part dans la scène peut ou non être poli, mais que vous devez l'attendre 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 aussi 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 updatePolish() ait été appelé sur item.

Retourne true si updatePolish() a été appelé sur item dans les timeout millisecondes, sinon retourne false.

Cette fonction a été introduite dans Qt 6.4.

Voir aussi 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 un message faux 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 aussi 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'attente (en millisecondes) soit atteint. Entre chaque évaluation, des événements sont traités. Si le timeout est atteint, un échec est enregistré dans le journal des tests et le test ne sera plus exécuté.

Remarque : cette macro ne peut être utilisée que dans une fonction de test invoquée par le cadre de test.

Cette macro a été introduite dans Qt 6.10.

QUICK_TEST_MAIN(name)

Définit le point d'entrée d'une application de test Qt Quick. L'argument name identifie de manière unique cet ensemble de tests.

#include <QtQuickTest>
QUICK_TEST_MAIN(example)

Remarque : la macro suppose que les sources de vos tests se trouvent dans le répertoire actuel, à moins que la variable d'environnement QUICK_TEST_SOURCE_DIR ne soit définie.

Voir aussi QUICK_TEST_MAIN_WITH_SETUP() et Exécuter les tests Qt Quick .

QUICK_TEST_MAIN_WITH_SETUP(name, QuickTestSetupClass)

Définit le point d'entrée d'une application de test Qt Quick. L'argument name identifie de manière unique cet ensemble de tests.

Cette macro est identique à QUICK_TEST_MAIN(), sauf qu'elle prend un argument supplémentaire QuickTestSetupClass, le type d'une classe dérivée de QObject qui sera instanciée. Avec cette classe, il est possible de définir un code d'installation supplémentaire à exécuter avant de lancer le test QML.

Note : La macro suppose que vos sources de test se trouvent dans le répertoire courant, à moins que la variable d'environnement QUICK_TEST_SOURCE_DIR ne soit définie.

L'extrait 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 aussi QUICK_TEST_MAIN() et Exécuter les tests Qt Quick .

[since 6.10] QVERIFY_ACTIVE_FOCUS(item)

Vérifie si le site item (qui doit être dérivé de QQuickItem) possède active focus. Si c'est le cas, l'exécution se poursuit. Dans le cas contraire, un échec est enregistré dans le journal du test et le test ne sera plus exécuté. 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 invoquée par le cadre 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.