Spec-Zone.ru › Qt

Пространство имён QQuickTest

Пространство имён QQuickTest содержит все функции и макросы, связанные с 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)

Подробное описание

См. Вступление к Qt Quick Test для информации о написании модульных тестов Qt Quick.

Чтобы связаться с библиотекой Qt Quick Test на C++, см. Qt Quick Test API на C++.

См. также Выполнение кода C++ перед QML-тестами.

Документация по функциям

[since 5.13] bool QQuickTest::qIsPolishScheduled(const QQuickItem *item)

Возвращает true если updatePolish() не вызывалась для item с момента последнего вызова polish(), иначе возвращает false.

При присваивании значений свойствам в QML любые операции по размещению, которые должен выполнить элемент, в результате присваивания могут не выполняться немедленно, а вместо этого могут быть отложены до того момента, когда элемент будет отполирован. В таких случаях вы можете использовать эту функцию, чтобы убедиться, что элемент был отполирован до продолжения выполнения теста. Например:

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

Без вызова qIsPolishScheduled() выше, вызов qWaitForItemPolished() может увидеть, что отложенная полировка отсутствует, и поэтому пройти мгновенно, предположив, что элемент уже был отполирован. Эта функция делает очевидным, почему элемент не был отполирован, и позволяет тестам завершаться ошибкой в таких ситуациях.

QML-эквивалент этой функции — isPolishScheduled().

Эта функция была добавлена в Qt 5.13.

См. также QQuickItem::polish() и QQuickItem::updatePolish().

[since 5.13] bool QQuickTest::qWaitForItemPolished(const QQuickItem *item, int timeout = 5000)

Ожидает timeout миллисекунд или пока updatePolish() не будет вызвано для item.

Возвращает true если updatePolish() был вызван для item в течение timeout миллисекунд, иначе возвращает false.

QML-эквивалент этой функции — waitForItemPolished().

Эта функция была добавлена в Qt 5.13.

См. также QQuickItem::polish(), QQuickItem::updatePolish() и QQuickTest::qIsPolishScheduled().

Документация по макросам

QUICK_TEST_MAIN(name)

Настраивает точку входа для приложения Qt Quick Test. Аргумент 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 Test. Аргумент name однозначно идентифицирует этот набор тестов.

Этот макрос идентичен QUICK_TEST_MAIN(), за исключением того, что он принимает дополнительный аргумент QuickTestSetupClass, указатель на класс, производный от QObject. С помощью этого класса можно определить дополнительный код настройки для выполнения перед запуском QML-теста.

Примечание: Макрос предполагает, что ваши тестовые источники находятся в текущем каталоге, если переменная окружения QUICK_TEST_SOURCE_DIR не задана.

Следующий фрагмент демонстрирует использование этого макроса:

// 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() и Запуск тестов Qt Quick.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qquicktest.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API