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 テスト入門を参照してください。
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() をオーバーロードする。
このウィンドウで管理されているアイテムで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 ミリ秒、またはqIsPolishScheduled(item)
がfalse
を返すまで、window が管理するすべてのアイテムについて待機する。
qIsPolishScheduled(item)
がtimeout ミリ秒以内にすべてのアイテムに対して false を返した場合はtrue
を返し、そうでない場合はfalse
を返す。
この関数に相当する QML はwaitForPolish() です。
この関数は Qt 6.4 で導入されました。
QQuickItem::polish(),QQuickItem::updatePolish(),QQuickTest::qIsPolishScheduled()も参照してください 。
マクロドキュメント
QUICK_TEST_MAIN(name)
Qt Quick テストアプリケーションのエントリーポイントを設定する。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 テストアプリケーションのエントリーポイントを設定する。name 引数は、この一連のテストを一意に識別する。
このマクロはQUICK_TEST_MAIN() と同じですが、QuickTestSetupClass という追加の引数をとり、その引数でインスタンス化されるQObject 由来のクラスの型を指定します。このクラスを使用することで、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() およびRunningQt Quick Tests も参照して ください。
© 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.