SignalSpy QML Type
シグナル発信のイントロスペクションを有効にする。詳細...
Import Statement: | import QtTest |
Inherits: |
プロパティ
- count : int
- signalArguments : list
- signalName : string
- target : var
- valid : bool
メソッド
詳細説明
次の例では、ユーザー定義の 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 ()メソッドを使用して、シグナルが発生するまで(またはタイムアウトが切れるまで)テストをブロックできます。
TestCase とQt Quick Testも参照してください 。
プロパティ ドキュメント
count : int |
このプロパティは、最後にclear() を呼び出してから、target からsignalName が発信された回数を定義します。
target 、signalName 、およびclear()も参照して ください。
signalArguments : list |
このプロパティは、放出されたシグナル引数のリストを保持する。シグナルが発信されるたびに、シグナルの引数を含むリストが1つ追加されます。新しいtarget または新しいsignalName に接続するとき、またはclear() メソッドを呼び出すとき、signalArguments は空にリセットされます。
signalName およびclear()も参照してください 。
target : var |
このプロパティは、signalName シグナルの放出をリッスンするために使用されるターゲット・オブジェクトを定義します。
signalName およびcount も参照 。
valid : bool |
このプロパティは、現在のシグナル接続状態を定義します。target のsignalName が正常に接続されると真になり、そうでなければ偽になる。
count 、target 、signalName 、clear ()も参照 。
メソッド・ドキュメント
clear() |
count を 0 にクリアし、valid を false にリセットし、signalArguments を空にクリアする。
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.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。