Пространство имён 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 C++ API.
См. также Выполнение кода 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.0/qquicktest.html