QQuickTest Namespace
QQuickTest 네임스페이스에는 Qt Quick Test 과 관련된 모든 함수 및 매크로가 포함되어 있습니다. 더 보기...
Header: | #include <QtQuickTest> |
함수
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) |
매크로
QUICK_TEST_MAIN(name) | |
QUICK_TEST_MAIN_WITH_SETUP(name, QuickTestSetupClass) |
자세한 설명
Qt Quick 단위 테스트를 작성하는 방법에 대한 자세한 내용은 Qt Quick Test 소개를 참조하세요.
Qt Quick Test C++ 라이브러리에 연결하려면 Qt Quick Test C++ API.
QML 테스트 전에 C++ 실행도참조하세요 .
함수 문서
bool QQuickTest::qIsPolishScheduled(const QQuickItem *item)
updatePolish()을 마지막으로 호출한 이후 item 에서 polish()을 호출하지 않은 경우 true
을 반환하고, 그렇지 않으면 false
을 반환합니다.
QML에서 프로퍼티에 값을 할당할 때, 할당 결과로 항목이 수행해야 하는 레이아웃이 즉시 적용되지 않고 항목이 폴리싱될 때까지 연기될 수 있습니다. 이러한 경우 이 함수를 사용하여 테스트 실행을 계속하기 전에 항목이 폴리싱되었는지 확인할 수 있습니다. 예를 들어
QVERIFY(QQuickTest::qIsPolishScheduled(item)); QVERIFY(QQuickTest::qWaitForItemPolished(item));
위의 qIsPolishScheduled()
호출이 없으면 qWaitForItemPolished()
호출은 아이템이 이미 폴리싱되었다고 가정하여 폴리싱이 예약되지 않은 것으로 보고 즉시 통과할 수 있습니다. 이 함수를 사용하면 항목이 폴리싱되지 않은 이유를 명확히 알 수 있으며, 이러한 상황에서 테스트를 조기에 실패할 수 있습니다.
이 함수에 해당하는 QML은 isPolishScheduled()입니다.
QQuickItem::polish() 및 QQuickItem::updatePolish()도 참조하세요 .
[since 6.4]
bool QQuickTest::qIsPolishScheduled(const QQuickWindow *window)
이 함수는 qIsPolishScheduled()를 오버로드합니다.
qIsPolishScheduled(item)
이 창에서 관리되는 항목이 있으면 true
을 반환하고, 그렇지 않으면 true
을 반환하고, 그렇지 않으면 false
을 반환합니다.
예를 들어 씬 내 어딘가에 있는 항목이 폴리싱될 수도 있고 그렇지 않을 수도 있지만 폴리싱될 때까지 기다려야 하는 경우 다음 코드를 사용할 수 있습니다:
if (QQuickTest::qIsPolishScheduled(window)) QVERIFY(QQuickTest::qWaitForPolish(window));
이 함수에 해당하는 QML은 isPolishScheduled()입니다.
이 함수는 Qt 6.4에 도입되었습니다.
QQuickItem::polish(), QQuickItem::updatePolish() 및 QQuickTest::qWaitForPolish()도 참조하십시오 .
[since 6.4]
bool QQuickTest::qWaitForPolish(const QQuickItem *item, int timeout = defaultTimeout)
timeout 밀리초 동안 또는 updatePolish()가 item 에서 호출될 때까지 기다립니다.
updatePolish()
이 item 에서 timeout 밀리초 이내에 호출되면 true
을 반환하고, 그렇지 않으면 false
을 반환합니다.
이 함수는 Qt 6.4에 도입되었습니다.
QQuickItem::polish(), QQuickItem::updatePolish() 및 QQuickTest::qIsPolishScheduled()도 참조하십시오 .
[since 6.4]
bool QQuickTest::qWaitForPolish(const QQuickWindow *window, int timeout = defaultTimeout)
timeout window 밀리초 동안 또는 에서 관리하는 모든 항목에 대해 을 반환할 때까지 기다립니다. qIsPolishScheduled(item)
false
qIsPolishScheduled(item)
이 timeout 밀리초 이내에 모든 항목에 대해 거짓을 반환하면 true
을 반환하고, 그렇지 않으면 false
을 반환합니다.
이 함수에 해당하는 QML 함수는 waitForPolish()입니다.
이 함수는 Qt 6.4에 도입되었습니다.
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()와 동일하지만, 인스턴스화될 QObject 파생 클래스의 유형인 QuickTestSetupClass 인수를 추가로 받는다는 점을 제외하면 동일합니다. 이 클래스를 사용하면 QML 테스트를 실행하기 전에 실행할 추가 설정 코드를 정의할 수 있습니다.
참고: 이 매크로는 QUICK_TEST_SOURCE_DIR
환경 변수가 설정되어 있지 않으면 테스트 소스가 현재 디렉터리에 있다고 가정합니다.
다음 스니펫은 이 매크로의 사용법을 보여줍니다:
// 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"
QUICK_TEST_MAIN() 및 Qt Quick 테스트 실행도참조하세요 .
© 2025 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.