SignalSpy QML Type

シグナル発信のイントロスペクションを有効にする。詳細...

Import Statement: import QtTest
Inherits:

Item

プロパティ

メソッド

詳細説明

次の例では、ユーザー定義の Button タイプの "clicked" シグナルを監視するために SignalSpy をインストールしています。シグナルが発信されると、スパイのcount プロパティが増加します。

Button {
    id: button
    SignalSpy {
        id: spy
        target: button
        signalName: "clicked"
    }
    TestCase {
        name: "ButtonClick"
        function test_click() {
            compare(spy.count, 0)
            button.clicked();
            compare(spy.count, 1)
        }
    }
}

上記のスタイルのテストは、同期的に発信されるシグナルに適しています。非同期シグナルの場合は、wait ()メソッドを使用して、シグナルが発生するまで(またはタイムアウトが切れるまで)テストをブロックできます。

TestCaseQt Quick Testも参照してください

プロパティ ドキュメント

count : int [read-only]

このプロパティは、最後にclear() を呼び出してから、target からsignalName が発信された回数を定義します。

targetsignalName 、およびclear()も参照して ください。


signalArguments : list [read-only]

このプロパティは、放出されたシグナル引数のリストを保持する。シグナルが発信されるたびに、シグナルの引数を含むリストが1つ追加されます。新しいtarget または新しいsignalName に接続するとき、またはclear() メソッドを呼び出すとき、signalArguments は空にリセットされます。

signalName およびclear()も参照してください


signalName : string

このプロパティは、リッスンするtarget のシグナル名を定義します。

target およびcount参照して ください。


target : var

このプロパティは、signalName シグナルの放出をリッスンするために使用されるターゲット・オブジェクトを定義します。

signalName およびcount参照


valid : bool [read-only]

このプロパティは、現在のシグナル接続状態を定義します。targetsignalName が正常に接続されると真になり、そうでなければ偽になる。

counttargetsignalNameclear ()も参照


メソッド・ドキュメント

clear()

count を 0 にクリアし、valid を false にリセットし、signalArguments を空にクリアする。

count およびwait()も参照


wait(timeout = 5000)

target 上のシグナルsignalName が発せられるのを、最大timeout ミリ秒待つ。シグナルが発せられない場合、テストケースは失敗する。

SignalSpy {
    id: spy
    target: button
    signalName: "clicked"
}

function test_async_click() {
    ...
    // do something that will cause clicked() to be emitted
    ...
    spy.wait()
    compare(spy.count, 1)
}

wait()が呼ばれたときにすでにシグナルが発信されていた場合と、まだシグナルが発信されていない場合です。wait()関数は、シグナルが既に発生した場合は即座に返すことで、最初のシナリオを処理します。

clear() メソッドを使用すると、既に発生したシグナルに関する情報を破棄して、wait() と将来のシグナルの発生を同期させることができる。

clear() およびTestCase::tryCompare()も参照して ください。


©2024 The Qt Company Ltd. 本書に含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。