이 페이지에서

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)

매크로

(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)

상세 설명

Qt Quick 유닛 테스트 작성 방법에 대한 정보는 Qt Quick Test 소개를 참조하십시오.

Qt Quick Test C++ 라이브러리를 링크하려면 다음을 참조하십시오. Qt Quick Test C++ API.

'QML 테스트 전에 C++ 실행' 항목도 참조하십시오 .

함수 문서

bool QQuickTest::qIsPolishScheduled(const QQuickItem *item)

polish()이 마지막으로 호출된 이후 item 에 대해 updatePolish()이 호출되지 않은 경우 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(item) `를 호출했을 때 ` true`를 반환하는 항목이 있으면 ` true `를 반환하고, 그렇지 않으면 ` false`를 반환합니다.

예를 들어, 씬 내의 어느 항목이 폴리싱 처리되었을 수도 있고 아닐 수도 있지만, 폴리싱 처리된 경우 해당 항목이 준비될 때까지 기다려야 하는 경우, 다음 코드를 사용할 수 있습니다:

if (QQuickTest::qIsPolishScheduled(window))
    QVERIFY(QQuickTest::qWaitForPolish(window));

이 함수의 QML 대응 함수는 ` isPolishScheduled()`입니다.

이 함수는 QQuickTest::qIsPolishScheduled()을 오버로드합니다.

이 함수는 Qt 6.4에서 도입되었습니다.

QQuickItem::polish(), QQuickItem::updatePolish() 및 QQuickTest::qWaitForPolish()도 참조하십시오 .

[since 6.4] bool QQuickTest::qWaitForPolish(const QQuickItem *item, int timeout = defaultTimeout)

timeout 밀리초 동안 대기하거나, item 에 대해 updatePolish()가 호출될 때까지 대기합니다.

timeout 밀리초 이내에 item 에 대해 updatePolish() 가 호출된 경우 true 을 반환하고, 그렇지 않은 경우 false 을 반환합니다.

이 함수는 Qt 6.4에서 도입되었습니다.

QQuickItem::polish(), QQuickItem::updatePolish() 및 QQuickTest::qIsPolishScheduled()도 참조하십시오 .

[since 6.4] bool QQuickTest::qWaitForPolish(const QQuickWindow *window, int timeout = defaultTimeout)

timeout 밀리초 동안 대기하거나, qIsPolishScheduled(item) 가 window 에서 관리하는 모든 항목에 대해 false 를 반환할 때까지 대기합니다.

qIsPolishScheduled(item) 가 timeout 밀리초 이내에 모든 항목에 대해 false를 반환하면 true 를 반환하고, 그렇지 않으면 false 를 반환합니다.

이 함수의 QML 대응 함수는 waitForPolish()입니다.

이 함수는 Qt 6.4에서 도입되었습니다.

QQuickItem::polish(), QQuickItem::updatePolish(), QQuickTest::qIsPolishScheduled()도 참조하십시오 .

매크로 문서

[since 6.10] QTRY_VERIFY_ACTIVE_FOCUS(item)

이 매크로는 QVERIFY_ACTIVE_FOCUS 에 있는 item 와 동일한 검사를 수행하지만, 조건이 참이 되거나 타임아웃(밀리초 단위)에 도달할 때까지 이 과정을 반복합니다. 각 평가 사이에는 이벤트가 처리됩니다. 타임아웃에 도달하면 테스트 로그에 실패가 기록되며, 테스트는 더 이상 실행되지 않습니다.

참고: 이 매크로는 테스트 프레임워크에 의해 호출되는 테스트 함수 내에서만 사용할 수 있습니다.

이 매크로는 Qt 6.10에서 도입되었습니다.

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 테스트 실행도참조하십시오 .

[since 6.10] QVERIFY_ACTIVE_FOCUS(item)

item ( QQuickItem 에서 파생되어야 함)에 active focus 가 있는지 확인합니다. 있는 경우, 실행이 계속됩니다. 없는 경우, 테스트 로그에 실패가 기록되고 테스트는 더 이상 실행되지 않습니다. 실패 메시지에는 실패 원인을 진단하는 데 필요한 포커스 관련 정보가 포함됩니다.

참고: 이 매크로는 테스트 프레임워크에 의해 호출되는 테스트 함수에서만 사용할 수 있습니다.

이 매크로는 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.