SignalSpy QML Type

Ermöglicht die Introspektion der Signalabgabe. Mehr...

Import Statement: import QtTest
Inherits:

Item

Eigenschaften

Methoden

Detaillierte Beschreibung

Im folgenden Beispiel wird ein SignalSpy installiert, der das Signal "angeklickt" auf einem benutzerdefinierten Button-Typ überwacht. Wenn das Signal ausgelöst wird, wird die Eigenschaft count des Spions erhöht.

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

Die obige Art des Tests eignet sich für Signale, die synchron ausgegeben werden. Bei asynchronen Signalen kann die Methode wait() verwendet werden, um den Test zu blockieren, bis das Signal auftritt (oder ein Timeout abläuft).

Siehe auch TestCase und Qt Quick Test.

Dokumentation der Eigenschaft

count : int [read-only]

Diese Eigenschaft gibt an, wie oft signalName seit dem letzten Aufruf von clear() von target ausgegeben wurde.

Siehe auch target, signalName, und clear().


signalArguments : list [read-only]

Diese Eigenschaft enthält eine Liste der ausgegebenen Signalargumente. Jede Ausgabe des Signals fügt ein Element an die Liste an, das die Argumente des Signals enthält. Wenn eine Verbindung zu einem neuen target oder neuen signalName hergestellt oder die Methode clear() aufgerufen wird, wird signalArguments auf leer zurückgesetzt.

Siehe auch signalName und clear().


signalName : string

Diese Eigenschaft definiert den Namen des Signals auf target, auf das zu warten ist.

Siehe auch target und count.


target : object

Diese Eigenschaft definiert das Zielobjekt, das verwendet wird, um auf Emissionen des Signals signalName zu achten.

Siehe auch signalName und count.


valid : bool [read-only]

Diese Eigenschaft definiert den aktuellen Status der Signalverbindung. Sie ist wahr, wenn die signalName der target erfolgreich verbunden ist, andernfalls ist sie falsch.

Siehe auch count, target, signalName, und clear().


Dokumentation der Methode

clear()

Löscht count auf 0, setzt valid auf false zurück und leert signalArguments.

Siehe auch count und wait().


wait(timeout = 5000)

Wartet darauf, dass das Signal signalName auf target ausgegeben wird, und zwar bis zu timeout Millisekunden lang. Der Testfall wird fehlschlagen, wenn das Signal nicht gesendet wird.

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

Es gibt zwei mögliche Szenarien: Das Signal wurde bereits ausgesendet, als wait() aufgerufen wurde, oder das Signal wurde noch nicht ausgesendet. Die Funktion wait() behandelt das erste Szenario, indem sie sofort zurückkehrt, wenn das Signal bereits aufgetreten ist.

Die Methode clear() kann verwendet werden, um Informationen über bereits aufgetretene Signale zu verwerfen, um wait() mit zukünftigen Signalemissionen zu synchronisieren.

Siehe auch clear() und TestCase::tryCompare().


© 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.